几个知识点
1. typeof instanceof
typeof 操作符, typeof 变量或对象名或函数名或null. 返回的值: string number boolean undefined function object
instanceof操作符, 变量(对象名) instanceof 对象类型. 返回的值: true 或 false. 如果是该类型则返回 true, 如果不是该类型, 则返回 false.
2. Undefined
已声明但尚未初始化的变量的值默认为 undefined.
尚未声明的变量只能进行一种操作, 就是用 typeof 操作符查看类型, 虽然会返回 undefined, 但是该变量并没有值, 也就是值并不是 undefined.
undefined 派生于 null, 所以对于相等性测试: alert(undefined == null), 返回 true.
3. Null
null 是一个空对象指针.
undefined 和 null 的区别在于: null 是一个空对象指针, 而 undefined 是已声明但尚未初始化的变量.
4. 基本类型和引用类型
4.1 复制变量
基本类型:
var num1 = 5;
var num2 = num1;
num2 的值改变了, 不会影响到 num1 的值.
引用类型:
var o1 = new Object();
var o2 = o1;
o2 的值改变了, o1 的值也随着改变了.
4.2 传递参数
基本类型:
function add(num) {
num += 10;
return num;
}
var count = 20;
var result = add(count);
alert(count); //20
alert(result); //30
形参的值改变了, 不会影响实参的值.
引用类型:
function setName(obj) {
obj.name = "john";
}
var o1 = new Object();
setName(o1);
alert(o1.name);
形参的值改变了, 实参的值也跟着改变了.
5. Array
5.1 定义方法:
var arr = new Array(5);
var arr = Array(5);
var arr = new Array(1, 2, 3, 4, 5);
var arr = Array(1, 2, 3, 4, 5);
var arr = [1, 2, 3, 4, 5];
如上所示几种定义数组的方法. 使用构造函数时, 可以省略 new.
5.2
var arr = [1, 2, 3, 4, 5];
alert(arr[34]); // undefined
如上所示, alert(arr[34]); 会在浏览器中弹出提示框显示 undefined. 但是此时 arr[34]并没有值(没有值的变量都返回undefined), 也就是它的值并不是 undefined. 所以数组的长度依然是 5.
var arr = [1, 2, 3, 4, 5];
arr[34] = undefined;
alert(arr[34]); // undefined
如上所示, 给 arr[34] 赋值了, 此时数组的长度会变为 35. 并且 arr[5~33]之间所有的值都变为 undefined.
总结: 当索引超出数组范围的时候, 只有给该索引位置设置值之后, 数组的长度才会改变.
6. Date
var now = new Date() 获得当前时间.
7. Function
Function 是对象. 函数名是指针, 指向该函数对象.
因为函数名是指针, 所以没有重载, 因为指针只会指向一个函数对象.
函数提升: 解析器会先读取函数声明, 使其在任何代码执行前可用.
函数可以做参数, 也可以做返回值.
arguments: 保存着所有传入函数的参数. 类似数组.
函数的两个属性: length prototype.
关键字:JavaScript
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!