1、js中 === 与 == 的区别
两个等号 == : 判断的是两个数据的值是否相同
三个等号 === : 判断的是两个数据的值与类型是否都相同
返回值 : 都是布尔值
2、 NaN是什么? NaN等于NaN吗?
NaN 是JavaScript中一个十分特殊的存在, 可以说他是Number类型 但是他又不属于一个 " 数字 "。
NaN 产生的条件: 当两个数据进行运算的时候,结果不是可以通过运算符算出来的时候, 就会出现NaN
NaN 的特殊性 : 因为NaN是一个特殊的数字,并且还是在算不结果的时候出现,所以NaN 不等于任何东西 (包括自己本身)
NaN 的判断 : 在JavaScript中用 isNaN( ) 来进行判断这个数据是不是 NaN
isNaN( ) 的返回值是布尔值
3、 冒泡排序
升序 ( 将数组 arr 中的数字大小升序排列)
var arr = [3,5,1,7,2,9,6];
for (var i = 0; i < arr.length-1; i++){
for (var j = 0 ; j < arr.length -i - 1; j++){
if (arr[j] > arr[j+1]) {
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
降序 ( 将数组 arr 中的数字大小降序排列)
var arr = [3,5,1,7,2,9,6];
for (var i = 0; i < arr.length-1; i++){
for (var j = 0 ; j < arr.length -i - 1; j++){
if (arr[j] < arr[j+1]) {
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
4、 JavaScript常用的兼容语法
浏览器滚动条距离上面的值
var height = document.documentElement.scrollTop || document.body.scrollTop;
获取非行内样式
if(window.getComputedStyle){
// 这个方法是可以使用的
console.log(window.getComputedStyle(oDiv).width);
}else{
// 兼容IE的方法
console.log(oDiv.currentStyle.width);
获取事件对象
标签对象.事件类型 = function(e){
e = e || window.event
}
事件监听
// ele 事件对象 type 事件类型 fun 事件处理函数
function myAddEvent( ele , type , fun){
// 判断 addEventListener这个方法是否存在
if(ele.addEventListener){
ele.addEventListener(type , fun);
}else{
// 兼容IE的写法
ele.attachEvent('on'+type , fun);
}
}
删除事件处理函数
// ele 事件对象 type 事件类型 fun 事件处理函数
function delFun(ele , type , fun){
if(ele.removeEventListener){
ele.removeEventListener(type , fun);
}else{
// 兼容IE的写法
ele.detachEvent( 'on' + type , fun);
}
}
阻止冒泡
function stopBubble(e){
if(e.stopPropagation){
e.stopPropagation();
}else{
// IE提出的
e.cancelBubble = true;
}
}
阻止浏览器默认行为
function stopDefault (e){
if (e.preventDefault) {
// w3school 提出的
e.preventDefault();
} else {
// IE中阻止浏览器默认行为
e.returnValue = false;
}
}
建立ajax
let xhr = {};
if(XMLHttpRequest){
// 普通浏览器
xhr = new XMLHttpRequest();
}else{
// 兼容低版本IE浏览器
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}