JavaScript的基础知识(一)

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');
}
上一篇:[穿梭框][js]运用document.adoptNode方法,写出基础的穿梭框效果


下一篇:JavaScript常用的兼容语法