js面试必见的面试题

  1. javascript的typeof返回哪些数据类型?

undefined string boolean number object function

undefined:undefined只是一个值。当我们声明一个变量,没有做初化的时候。我们调用这个变量就会返回一个值undefined。如:

var name; alert(name);如果我们把alert语句写成alert(people);同样是返回undefined。

这两种情况分别是一、只是定义了变量没有做相应的初始化。二、没有声明相应的变量。

null:是一个只有一个值的特殊类型。表示一个空对象引用。用typeof检测返回是object。

undefined是派生自null。undefined==null。

string:String 类型用于表示由于零或多个 16 位 Unicode 字符组成的字符序列,即字符串。字 符串可以由双引号(")或单引号(')表示。

boolean:Boolean 类型有两个值(字面量): true 和 false。 而 true 不一定等于 1, false 不一定等于 0。 JavaScript 是区分大小写的,True 和 False 或者其他都不是 Boolean 类型的值。boolean可以与其他类型转化。

number :任何非零数字值(包括无穷大) 0 和 NaN

object------对象或者null返回的是object

function:函数

  1. 例举3种强制类型转换和2种隐式类型转换?

强制转换:

转 boolean 规则:

null, undefined, "", 0, -0, NaN 转换成布尔值是false, 剩下的全转化 true;

转 number 规则:

string '2.3.1' => NaN;

null, '', false, [] ==>> 0;

undefined => NaN;

object => x Number(object.toString())

隐士转换:

==匹配两个变量的的值,如果类型不匹配,会强制类型转换,

===不但匹配两个变量的值,还会匹配两个变量的数据类型是否相同,如果其中有一项不相同,匹配失败。

===不会类型转换,执行效率高。

  1. split() 、join() 的区别

1.split()

将一个字符串分割为子字符串,将结果作为字符串数组返回,若字符串中存在多个分割符号,亦可分割。

形式:

stringObj.split([separator,[,limit]])

stringObj 必选项 string对象或者文字 该对象不会被split方法修改

separator 可选项 字符串或者正则表达式对象

列子:

var str ="Hello World!";

str.split(""); //["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d", "!"]

str.split(" "); //["Hello", "World!"]

str.split("",3);//["H", "e", "l"]

join方法

把数组中的所有元素放入一个字符串中

形式:

arrayObj.join(separator);

separator 可选项 省略该参数,则使用逗号作为分割符

举例:

var arr = new Array(3);

arr[0] = "George";

arr[1] = "John";

arr[2] = "Thomas";

arr.join();//"George,John,Thomas"

arr.join(".");//"George.John.Thomas"

limit 可选项 返回数组中的元素个数

  1. 数组方法pop() push() unshift() shift()

shift()方法:移除数组中的第一项并返回该项

push()方法:从数组末端添加项

unshift()方法:在数组的前端添加项

pop()方法:从数组末端移除项

  1. 事件绑定和普通事件有什么区别

事件绑定相当于在一个元素上进行监听,监听事件是否触发。

普通事件就是直接触发事件。

两者的区别就在于是否可重复使用。

事件绑定可以在一个元素上监听同一事件多次,而普通事件多次写会被覆盖。如:

var ys1 = ‘某个元素监听(绑定)’,ys2 = ‘另一个元素(普通事件)’;

ys1.addEventListener('click',function () {

alert(1);

});

ys1.addEventListener('click',function () {

alert(2)

});

//会弹出1,2;

ys2.onclick = function(){

alert(1);

}

ys2.onclick = function(){

alert(2);

}

//只会弹出2.

你可能感兴趣的:(js面试必见的面试题)