js的数据类型

目录

typeof操作符

Undefined类型

Boolean类型

Number类型

String类型

Symbol类型

Object类型


typeof操作符

在这个例子中,我们把一个变量(msg)和一个数值字面量传给了typeof操作符,注意,因为他是一个操作符而不是函数,所以不需要参数(但可以使用参数)

调用typeof null 返回的是object,这是因为特殊值null被认为是一个对空对象的引用

Undefined类型

Undefined类型只有一个值,就是特殊值Undefined,当使用var或let声明了变量而没有初始化时,

就相当于给变量赋予了undefined:

var a;
console.log(a);//undefined
注意  即使未初始化的变量会被自动赋予undefined值,但我们仍然建议在声明变量时进行初始化,这样,当typeof返回"undefined"时,就会知道那是因为给定的变量尚未声明,而不是声明了未初始化。

Boolean类型

有两个字面量:true和false

虽然布尔值只有两个,但所有其他Script类型的值都有对应布尔值的等价形式,要将一个其他类型的值转化为布尔值,可以调用特定的Boolean()转化函数

var msg='hello';
var asBoolean=Boolean(msg);

Number类型

整数和浮点都是数值型

var a = 10;
var b = 10.5;

NaN

有一个特殊的数值叫做NaN,意思是不是数值,用于表示本来要返回数值的操作失败了(而不是抛出异常),比如用0除任意数字在其他语言中会报错,从而中断代码,而js中不一样

console.log(0/0);//NaN

console.log(-0/+0);//NaN

如果分子是非0值,分母是有符号的0或者无符号的0,就会返回infinity,意思是无穷数,使用typeof判断为number类型
console.log(5/0);//Infinity
console.log(5/-0); //-Infinity

String类型

字符串可以用双引号和单引号表示,不同于java,在Java中双引号表示字符串,而单引号表示字符。

js中的字符串也是不可变的,意思是一旦创建,他们的值就不能变了,要修改某个变量的字符串的值,必须先销毁原始的字符串,然后将包含新值的字符串保存到变量。

Symbol类型

生成一个唯一标识符,可用于属性名称、也可用于属性值。目的是消除属性名称冲突。

// 1、创建新 symbol
let sym1 = Symbol()
let sym2 = Symbol('foo')

// 2、每次调用都创建新的 symbol
Symbol('foo') === Symbol('foo')  // false

Object类型

对象通过new操作符后跟对象类型的名称来创建,然后对对象添加属性

var o = new Object();

这个语法类似于Java,但js只要求在给构造函数提供参数时括号,如果没有参数,可以不使用括号(不推荐) 

你可能感兴趣的:(javascript,前端,开发语言)