面试总结之Javascript篇(二)

继续Javascript面试总结~

 

1. Javascript中的基本数据类型有哪些?

Javascript中有五种基本类型,如下:

A. 数字。包括浮点数与整数,例如123.14

B. 字符串。有任意数量字符组成的序号,如 ‘a’,’b’,’abc’等。

C. 布尔值。truefalse

D. undefined。当我们试图访问一个不存在的变量时,就会得到一个特殊值:undefined。除此之外,使用一个未初始化的变量也会如此,因为Javascript会自动将变量在初始化之前的值设定为undefined

E. null。只包含一个值的特殊数据类型。通常指没有值、空值,不代表任何东西。nullundefined最大的不同在于,被赋予null的变量通常被认为是已经定义了的,只不过它不代表任何东西,null有时也可被视为对象。

注:不属于以上五种基本类型的非基本类型都会被认为是一个对象。nullundefined最大的不同在于,被赋予null的变量会被认为是已经定义了得,只不过它不代表任何东西。nullundefined在被转换为其他类型时,方法也存在一定的区别:

转换成数字:

>>>1*undefined
NaN
>>>1*null
0

转换成布尔值

>>>!undefined
false
>>>!!null
false

转换成字符串

>>>""+null
"null"
>>>""+undefined
undefined

2. typeof返回的数据类型有哪些?

共有 ”number”、”string”、”boolean”、”undefined”、”object”和”function”。

a. number。当我们将一个变量赋值为数字,并对其调用typeof操作符,控制台就会返回字符串”number”。

注:当一个数字以0开头时,表示八进制数;以0x开头时表示十六进制;特殊值Infinity表示超出了Javascript处理范围的数值,但仍然是一个数字,Infinity与其他任何操作数执行任何算术运算的结果,都是InfinityNaN依然属于数字,只不过是一种特殊的数字,当我们在对一个数字执行某个操作失败时,就会得到一个NaNNaN具有传染性,只要算术运算中存在一个NaN,整个运算就会失败。

b. string。一对双引号或单引号之间的任何值都会被视为一个字符串,在一个字符串上,typeof操作符就会返回“string”。如果引号之间没有任何东西,它所表示的依然是一个字符串(即空字符串)。将一个数字字符串用于算术运算中的操作数时,该字符串会在运算中被当作数字类型来使用(由于加法操作符的歧义性,这条规则不适用于加法运算)。

c. 布尔值。truefalse可用于引号以外的人格地方,如果在引号内表示一个字符串。在进行逻辑转换时,空字符串、nullundefined、数字0、数字NaN、布尔值false6个值将被转换成false,所以这6个值被统称为falsy值,其他值则被称为truthy

d. undefined。对某个不存在的或者未经赋值的变量使用typeof时,就会返回“undefined

e. object。对非基本类型使用typeof操作符时,就会返回“object”,如数组。

f. function。对某个函数使用typeof操作符时,就会返回“function”。

 

3. ”==”和”===”的区别

“==”相等运算符:当两个操作数相等时返回true,在该比较操作执行之前,两边的操作数会被自动转换为相同类型。

>>>1==1
true
>>>1==2
false
>>>1=='1'
true

“===”等价运算符:当且仅当两个操作数的值和类型都向同事返回true。这种比较往往比较更可靠,因为其幕后不存在任何形式的类型转换。

>>>1==='1'
false
>>>1===1
true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值