Open TongtongGitHub opened 7 years ago
JS组成:核心ECMAScript,文档对象模型DOM,浏览器对象模型BOM。
语法:
函数内定义的变量是局部变量无法在函数外访问,但是如果不是用var关键字,变量默认为全局变量,可以在外部访问,但不建议这样使用。
JS共有五种简单数据类型和一种复杂数据类型Object:
=== !== 会比较数值和类型。
label 语句,用的比较少。with语句不建议使用。
函数的参数内部使用数组表示。可以不是用命名的参数而使用arguments对象访问这个数组。由于函数没有签名,因此无法真正的重载,如果定义两个相同的函数,后者会覆盖前者。
基本数据类型值是指简单数据段,而引用数据类型值指的是对象,后者可以添加删除属性和方法。引用类型数据的值实际上是一个指针,var obj1 = new Object(); var obj2 = obj1; 两个变量指向同一个对象,改变其中一个变量,另一个也会改变。
函数的参数都是按值传递的,传递基本数据类型的值时,被传递的值会被赋值给一个局部变量。当对象作为参数时,函数会将对象的值,也就是指针复制给这个局部对象,虽然是按值传递,但是两个变量指向同一个对象,改变内部局部变量也会改变外部对象。
function setName(obj){ obj.name = "a"; obj = new Object(); obj.name = "b"; } var person = new Object(); setName(person); alert(person.name); // 输出a
obj变量和person是两个变量,当obj指向一个新的变量时,操作将不再影响外部变量,因此参数是按值传递的。
JS只有全局作用域和函数内部局部作用域哦,没有块级作用域(if,for等语句没有单独作用域,都属于函数作用域哦)。因此for循环内部的变量可以在for循环外部访问。
for( var i = 0; i < 10; i++) { .... } alert( i ); //输出 10
局部变量当函数结束时后自动被垃圾收集,全局变量可以设置为null,然后被垃圾回收,这样可以有效的回收内存。
定义对象有两种方式,new Object() 和var person = { name: "a", age: 12 };
JS组成:核心ECMAScript,文档对象模型DOM,浏览器对象模型BOM。
语法:
函数内定义的变量是局部变量无法在函数外访问,但是如果不是用var关键字,变量默认为全局变量,可以在外部访问,但不建议这样使用。
JS共有五种简单数据类型和一种复杂数据类型Object:
=== !== 会比较数值和类型。
label 语句,用的比较少。with语句不建议使用。
函数的参数内部使用数组表示。可以不是用命名的参数而使用arguments对象访问这个数组。由于函数没有签名,因此无法真正的重载,如果定义两个相同的函数,后者会覆盖前者。
基本数据类型值是指简单数据段,而引用数据类型值指的是对象,后者可以添加删除属性和方法。引用类型数据的值实际上是一个指针,var obj1 = new Object(); var obj2 = obj1; 两个变量指向同一个对象,改变其中一个变量,另一个也会改变。
函数的参数都是按值传递的,传递基本数据类型的值时,被传递的值会被赋值给一个局部变量。当对象作为参数时,函数会将对象的值,也就是指针复制给这个局部对象,虽然是按值传递,但是两个变量指向同一个对象,改变内部局部变量也会改变外部对象。
JS只有全局作用域和函数内部局部作用域哦,没有块级作用域(if,for等语句没有单独作用域,都属于函数作用域哦)。因此for循环内部的变量可以在for循环外部访问。
局部变量当函数结束时后自动被垃圾收集,全局变量可以设置为null,然后被垃圾回收,这样可以有效的回收内存。
定义对象有两种方式,new Object() 和var person = { name: "a", age: 12 };