正在努力加载中...
JavaScriptの类型
  1. 1. 前言
  2. 2. null
  3. 3. undefined
  4. 4. boolean
  5. 5. number
  6. 6. string
  7. 7. object
    1. 7.1. 函数
    2. 7.2. 数组
  8. 8. symbol

前言

此篇小结来源与《你不知道的JavaScript》和《JavaScript高级程序设计》的结合??或许是的,龟速总结中…

#七种内置类型

  1. null
  2. undefined
  3. boolean
  4. number
  5. string
  6. object
  7. symbol

除了object,其他都成为基本类型
变量没有类型,值才有。
typeof总返回一个字符串。

null

类型检测
因为typeof检测null的结果为object,所以在判断的时候需要这样判断:

var a = null;
(!a && typeof null === "object"); //true

undefined

类型检测

typeof undefined === "undefined"; //true

变量未持有值是undefined,但并不是未声明,不过下面结果都是undefined:

var a;
typeof a;  //"undefined"
typeof b;  //"undefined"

安全防范
防止出现直接抛出未声明的错误,不能直接用if(变量)的方法来判断变量是不是存在,可以用以下两种方法:

if(typeof DEGUB  !== "undefined") {}
if(window.DEBUG) {}

boolean

类型检测

typeof true === "boolean"; //true

number

类型检测

typeof 42 === "number"; //true

JS并没有真正意义上的整数,使用双精度格式(64位),42.0等同于42。

数字表示

  1. 默认十进制表示,小数最后的0被省略。
  2. 特别大和特别小的用指数显示,与用toExponential()结果相同。
  3. 数字前面的0可省略。
  4. 小数点后小数最后的0也可以省略。
  5. 调用Number.prototype的方法:toFixed()显示小数位数。
  6. 调用Number.prototype的方法:toPrecision()指定有效数位的显示位数。

注意:运算符会优先认为是有效数字字符

42.toFixed(3); //SynataxError
(42).toFiex(3); //42.000
0.42.toFixed(3); //0.420
42..toFixed(3); //0.420
42 .toFixed(3); //42.000

string

类型检测

typeof "42" === "string"; //true

字符串和字符串数组

  1. 都是类数组,有length属性,有indexOf()和concat()方法。

  2. 字符串不可变(创建返回新值),数组可变,但a[i]在老版本IE中不允许,正确用a.CharAt(i)。

  3. 字符串可以借用方法处理,如:Arrray.prototype.join.call(a,’-‘);

  4. 数组有reverse()方法,字符串没有。可以用以下方法(对复杂字符如Unicode、星号不适用):

    var c=a.split().reverse().join(‘’);

object

函数

类型检测
function是object的子类型,其length属性为参数个数,但是typeof判断结果有function:

type of function a(){} === "function"; //true

数组

类型检测
数组也是object的子类型

type of [1,2,3] === "object"; //true

类数组转换
1.slice()常用于把类数组转换为数组:

Array.prototype.slice.call(arguments);

2.ES6中的Array.from(arguments)实现相同作用。

注意点
delete可以把元素删除,但length并不会发生变化。

symbol

类型检测

typeof Symbol() === "symbol"; //true
上一篇 下一篇
Powered By Valine
v1.5.2
ABOUT
欢迎来到小年糕的后花园,年糕的小站开设于2017年,博主年糕君是一个爱好十分广泛的人,也是一个比较佛系的人,不定时爆发脑洞更新(因为是社畜,也可能失踪很久,工作太累了)。 查看更多