- 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:函数
- 例举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())
隐士转换:
==匹配两个变量的的值,如果类型不匹配,会强制类型转换,
===不但匹配两个变量的值,还会匹配两个变量的数据类型是否相同,如果其中有一项不相同,匹配失败。
===不会类型转换,执行效率高。
- 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 可选项 返回数组中的元素个数
- 数组方法pop() push() unshift() shift()
shift()方法:移除数组中的第一项并返回该项
push()方法:从数组末端添加项
unshift()方法:在数组的前端添加项
pop()方法:从数组末端移除项
- 事件绑定和普通事件有什么区别
事件绑定相当于在一个元素上进行监听,监听事件是否触发。
普通事件就是直接触发事件。
两者的区别就在于是否可重复使用。
事件绑定可以在一个元素上监听同一事件多次,而普通事件多次写会被覆盖。如:
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.