数据类型小结

2018-12-28  本文已影响0人  饥人谷_流水

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表示。布尔值只有这两个值。

下列运算符会返回布尔值:

转换为false的类型
如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。

注意 :空数组([])和空对象({})对应的布尔值,都是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. 数值转换

有三个函数可以把非数值转换为数值

parseInt parseFloat

  1. 忽略字符串前面的空白字符,找到第一个非空白字符
  2. 如果第一个字符不是-或者数字返回NaN
  3. 如果是继续解析,直到非数值模式为止
  4. 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'];

参考

http://javascript.ruanyifeng.com/grammar/basic.html

上一篇下一篇

猜你喜欢

热点阅读