饥人谷技术博客

JS 里的数据类型

2019-01-22  本文已影响19人  饥人谷_万青

JavaScript中的每一个数据,都有它的类型。JS中一共有7种数据类型(包括ES6新增的symbol)。每一种数据类型所对应的数据分别是:

  1. number:整数跟小数(如11.23)。
  2. string:文本(如hello world)。
  3. boolean:表示两个状态,真(true)与假(false)。
  4. null:表示空值,及此处的值为空。
  5. undefinde:表示未定义或不存在。
  6. object:对象属于复杂数据类型。可以细分为:
    --狭义的对象(object
    --数组(array
    --函数(function
  7. symbol:表示独一无二的值。

number

JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。容易造成混淆的是,某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数,然后再进行运算。
一个数在JS内部的保存形式为:
(-1)^符号位 * 1.xx...xx(小数部分) * 2^指数部分
第1位:

第2-12位:

第13-64位:

string

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。

boolean

boolean表示真与假两个状态,真用true表示,假用false表示。
除了以下了六个falsy值的boolean值是false以外,其余的值在JS中都被视为true。
-null
-undefined
-NaN //(Not a Number)
-0
-''"" //空字符串,需要注意空数组[]或空对象{}是true
-false

null和undefined

nullundefined都可以表示“没有”,含义非常相似。在实际使用中也几乎没有区别。

null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。比如,某个函数接受引擎抛出的错误作为参数,如果运行过程中未出错,那么这个参数就会传入null,表示未发生错误。undefined表示“未定义”。

object

简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。

1. 狭义的对象

{ foo: 123 }
{ console.log(123) } // 123  JS认为第一行是代码库
//如果需要解释位对象,可以加上圆括号
({ foo: 123 }) 
({ console.log(123) }) // 报错  JS认为第一行是对象

2. 数组

数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。

3. 函数

函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。typeof会返回function.

function print(s) {
  console.log(s);
}

2 函数表达式

var print = function(s) {
  console.log(s);
};
//此时S作为函数名只能在函数内部使用
//结尾要加;

3 Function 构造函数

var add = new Function(
  'x',
  'y',
  'return x + y'
);

// 等同于
function add(x, y) {
  return x + y;
}
// 最后一个参数才会被当作函数体,前面的都是参数。只有一个参数,该参数就是函数体。
// 语句
function f() {}

// 表达式
var f = function f() {}
---------------------------------

(function(){ /* code */ }());
// 或者
(function(){ /* code */ })();
上一篇下一篇

猜你喜欢

热点阅读