你可以通过两种方式访问对象属性:
person.lastName;
person["lastName"];
<p id="demo1"></p>
<p id="demo2"></p> <script> var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; document.getElementById("demo1").innerHTML = "不加括号输出函数表达式:" + person.fullName; document.getElementById("demo2").innerHTML = "加括号输出函数执行结果:" + person.fullName();
</script>
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:
function myFunction ( a , b ) {
if ( a > b ) {
return ;
}
x = a + b
}
如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。
局部变量:在函数中通过var声明的变量。
全局变量:在函数外通过var声明的变量。
没有声明就使用的变量,默认为全局变量,不论这个变量在哪被使用。
1、对于 string、number 等基础类型,== 和 === 是有区别的
2、对于 Array,Object 等高级类型,== 和 === 是没有区别的
进行 "指针地址" 比较
3、基础类型与高级类型,== 和 === 是有区别的
Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。
在 JavaScript 中有 5 种不同的数据类型:
3 种对象类型:
2 个不包含任何值的数据类型:
你可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。
1,全局方法 String() 可以将数字转换为字符串。
该方法可用于任何类型的数字,字母,变量,表达式:String(x) // 将变量 x 转换为字符串并返回
Number 方法 toString() 也是有同样的效果。x.toString(),
2,全局方法 Number() 可以将字符串转换为数字。
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
1.search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
例:
<p>搜索字符串 "runoob", 并显示匹配的起始位置:</p> <button οnclick="myFunction()">点我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit Runoob!"; var n = str.search(/Runoob/i); document.getElementById("demo").innerHTML = n; // n = 6 }
</script>
2.replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
例:
<p>替换 "Microsoft" 为 "Runoob" :</p> <button οnclick="myFunction()">点我</button> <p id="demo">请访问 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","Runoob"); document.getElementById("demo").innerHTML = txt; } </script>
3. test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
以下实例用于搜索字符串中的字符 "e":
var patt = /e/; patt.test("The best things in life are free!");
// 等同于 /e/.test("The best things in life are free!");
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
JavaScript 只有声明的变量会提升,初始化的不会。
以下实例由于类型不一致不会执行 alert 弹窗:
var x = 10; switch(x) { case "10": alert("Hello"); //10 === "10" 为false }
var x = 10 + "5"; // x 的结果为 "105"
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定:
var x = 0.1; var y = 0.2; var z = x + y // z 的结果为 0.3
if (z == 0.3) // 返回 false,z=0.3.00000000000004
为解决以上问题,可以用整数的乘除法来解决:
var z = (x * 10 + y * 10) / 10; // z 的结果为 0.3
字符串断行需要使用反斜杠(\),如下所示:
var x = "Hello \
World!";
在 JavaScript 中,分号是可选的 。如果是一个不完整的语句,JavaScript 将尝试读取第二行的语句,如果语句是完整的JavaScript 将自动关闭语句:
在 JavaScript 中, 对象 使用 名字作为索引。
如果你使用名字作为索引,当访问数组时,JavaScript 会把数组重新定义为标准对象。
执行这样操作后,数组的方法及属性将不能再使用,否则会产生错误:
var person = []; person["firstName"] = "John"; person["lastName"] = "Doe"; person["age"] = 46; var x = person.length; // person.length 返回 0
var y = person[0]; // person[0] 返回 undefined
在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。
以下代码的的变量 i 返回 10,而不是 undefined:
for (var i = 0; i < 10; i++) { // some code }
return i;
JavaScript 函数有个内置的对象 arguments 对象。
argument 对象包含了函数调用的参数数组。
通过这种方式你可以很方便的找到最大的一个参数的值:
x = findMax(1, 123, 500, 115, 44, 88); function findMax() { var i, max = arguments[0]; if(arguments.length < 2) return max; for (i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; } document.getElementById("demo").innerHTML = x;