1.typeof
typeof运算符可以返回一个值的数据类型
原始类型
数值、字符串、布尔值分别返回number、string、boolean。
函数
函数返回function。
undefined
undefined返回undefined。
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
function f() {}
typeof f
// "function"
typeof undefined
// "undefined"
除此以外,其他情况都返回object。
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
typeof可以用来检查一个没有声明的变量,而不报错。
v // ReferenceError: v is not defined
typeof v // "undefined"
实际编程中,这个特点通常用在判断语句。
// 错误的写法
if (v) { } // ReferenceError: v is not defined
// 正确的写法
if (typeof v === "undefined") { }
2. instanceof
区分数组和对象
var o = {};
var a = [];
o instanceof Array // false
a instanceof Array // true
3. null和undefined
对于null和undefined,可以大致可以像下面这样理解。
null表示空值,即该处的值现在为空。典型用法是:
作为函数的参数,表示该函数的参数是一个没有任何内容的对象。
作为对象原型链的终点。
undefined表示不存在值,就是此处目前不存在任何值。典型用法是:
变量被声明了,但没有赋值时,就等于undefined。
调用函数时,应该提供的参数没有提供,该参数等于undefined。
对象没有赋值的属性,该属性的值为undefined。
函数没有返回值时,默认返回undefined。
var i;
i // undefined
function f(x){console.log(x)}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined
4. Boolean
布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。
下列运算符会返回布尔值:
- 两元逻辑运算符: && (And),|| (Or)
- 前置逻辑运算符: ! (Not)
- 相等运算符:===,!==,==,!=
- 比较运算符:>,>=,<,<=
转换为false的类型
如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。
- undefined
- null
- false
- 0
- NaN
- ""(空字符串)
注意 :空数组([])和空对象({})对应的布尔值,都是true
if ([]) {
console.log(true);
}
// true
if ({}) {
console.log(true);
}
// true
5. Infinity 表示无穷大
1/0 //Infinity
6. NaN
NaN含义是Not a Number,表示非数字,NaN和任何值都不相等,包括自己
NaN == NaN; //false
parseInt('abc'); //NaN
7. 数值转换
有三个函数可以把非数值转换为数值
- Number()
- parseInt()
- parseFloat()
parseInt parseFloat
- 忽略字符串前面的空白字符,找到第一个非空白字符
- 如果第一个字符不是
-
或者数字返回NaN
- 如果是继续解析,直到非数值模式为止
-
0
开头会当做八进制,0x
开头会当做十六进制,但是可以指定第二个参数指定基数
parseInt('blue'); //NaN
parseInt('-23ABS'); // -23
parseInt('0xf1'); // 241
parseInt('101', 2); // 5
8.Object
对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。key我们称为对象的属性,value可以是任何JavaScript类型,甚至可以是对象
var obj = {
name: 'jirengu',
age: 2
};
object的属性读取有两种方式
obj.name;
obj['name'];
网友评论