怎么去学好Web前端技能?JS面试题及答案有哪些?很多企业在招聘时都会考察求职者对JavaScript的掌握,其中数据类型是重点。JavaScript中有七种内置数据类型,包括基本类型和对象类型。在面试官提问时他们不会直接考察具体有哪些类型,而是迂回提问,重点考察你的综合理解。接下来就给大家分享JavaScript数据类型相关的面试题及答案。
1、说说你对JavaScript是弱类型语言的理解?
JavaScript是弱类型语言,而且JavaScript声明变量的时候并没有预先确定的类型,变量的类型就是其值的类型,也就是说变量当前的类型由其值所决定。夸张点说上一秒种的String,下一秒可能就是个Number类型,这个过程可能就进行了某些操作发生了强制类型转换。虽然弱类型的这种不需要预先确定类型的特性给我们带来了便利,同时也会给我们带来困扰。为了能充分利用该特性就必须掌握类型转换的原理。
2、JavaScript中强制类型转换是一个非常易出现bug的点,知道强制转换时候的规则吗?
ToPrimitive(转换为原始值)转成何种原始类型,取决于type,type参数可选,若指定,则按照指定类型转换,若不指定,默认根据实用情况分两种情况,Date为string,其余对象为number。
Number运算符转换规则:null转换为0,undefined转换为NaN,true转换为1,false转换为0,字符串转换时遵循数字常量规则,转换失败返回NaN。
String运算符转换规则:null转换为'null',undefined转换为undefined,true转换为'true',false转换为'false',数字转换遵循通用规则,极大极小的数字使用指数形式。
ToBoolean运算符转换规则:undefined、null、-0、0或+0、NaN、''(空字符串)转换结果为false,其他全部为true。
3、在什么情况下发生什么样的转换?
什么时候自动转换为string类型?1)在没有对象的前提下;2)当有对象且与对象+时候。
什么时候自动转换为Number类型?1)有加法运算符,但是无String类型的时候;2)除了加法运算符,其他运算符都会把运算自动转成数值。注意:null转为数值时为0,而undefined转为数值时为NaN。
什么时候进行布尔转换?1)布尔比较时;2)if(obj),while(obj)等判断时或者三元运算符只能够包含布尔值。
4、怎么判断一个值到底是数组类型还是对象?
1)通过typeof操作符来判断一个值属于哪种基本类型。
2)通过instanceof操作符也可以对对象类型进行判定,其原理就是测试构造函数的prototype是否出现在被检测对象的原型链上。
5、toString和String的区别是什么?
1)toString()可以将数据都转为字符串,但是null和undefined不可以转换。
2)toString()括号中可以写数字,代表进制,如二进制:.toString(2)。
3)String()可以将null和undefined转换为字符串,但是没法转进制字符串。
熟练掌握JavaScript,你就具备了学好Web前端的前提。如果你想了解更多的Web前端相关技能,可以进行系统的学习进阶,为自己创造职场高起点!