二、JavaScript 值

94 阅读1分钟

一、数组

数组

数组可以容纳任何类型的值,可以是字符串、数字、对象,甚至是其他数组。

使用 delete 运算符可以将单元从数组中删除,但是数组的 length 属性不会发生变化。其中被删除的单元值为 undefined

伪数组
  • 类数组转数组:
  1. 工具函数 slice()
function foo(){
    return Array.prototype.slice.call(arguments)
}
console.log(foo('1','2'));  // ['1', '2']
  1. ES6 内置工具函数 Array.from()
function foo(){
    return Array.from(arguments)
}
console.log(foo('1','2'));  // ['1', '2']
二、字符串
三、数字

JavaScript 只有一种数值类型:number(数字)。

JavaScript 中的数字类型是基于 IEEE 754 标准来实现的,也叫 "浮点型"

JavaScript 使用的是 "双精度" 格式(即64位二进制)。

  • 常见问题
  1. 0.1 + 0.2 === 0.3; // false 的原因?
简单来说,二进制浮点数中的0.10.2并不是十分精确,他们相加的结果并非刚好是0.3,所以条件判断结果为false
  1. 零值处理
// 对负零进行字符串化会返回'0'
(-0).toString();  // '0'
-0 + '';  // '0'
String(-0);  // '0'

// 从字符串转换为数字,得到的结果是准确的
+'-0';  // -0
Number('-0');  // -0
JSON.parse('-0');  // -0
  1. 特殊等式: Object.is() 判断两个值是否绝对相等
Object.is(0, -0);  // false
Object.is(-0, -0);  // true
Object.is(NaN, NaN);  // true
  1. 值和引用

简单值(即标量基本类型值)总是通过值复制的方式来赋值/传递,包括null、undefined、字符串、数字、布尔和ES6中的symbol。

复合值——对象和函数,总是通过引用复制的方式来赋值/传递。

最后


未完待续...

你需要陆续将数组、字符串等的常用方法补充进来。