js Climbing

125 阅读2分钟

判断两个元素是否有嵌套关系

<div id="div1">
    <div id="div2"></div>
</div>
<div id="div3"></div>
<div id="div4"></div>
var oDiv1 = document.getElementById('div1'),
    oDiv2 = document.getElementById('div2'),
    oDiv3 = document.getElementById('div3'),
    oDiv4 = document.getElementById('div4');
console.log(elContains(oDiv1,oDiv2)); //true
console.log(elContains(oDiv3,oDiv4)); //false
function elContains(a,b){
    return a.contains?a!=b&&a.contains(b):!!(a.compareDocumentPosition(b)&16);
}

幂方和开方

Math.pow(2,3);      //8  2的3次方             
Math.pow(3,2);      //9  3的2次方
Math.sqrt(9);       //3  9的开方                
Math.pow(27,1/3);   //3  27的开立方

数组中找出最大元素

var arr = [34,71,8,934,10];
var value = 9999; //设置一个很大的数,用于和数组中的各个数进行比较
var index = -1; //用于存放最小数的那个数的数组下标
for (var i = 0; i < arr.length; i++) {
  if(arr[i]<value){
    value = arr[i];
    index = i;
  }
}
console.log('最小值:'+value+",下标为"+i); //最小值:8,下标为5

写出程序运行结果

window.onload = function () {
    var a = 2;
    console.log(this.a); //undefined
}
var b = 3;
console.log(this.b); //3
window.onload = function () {
    var a = 1;
    function  b() {
        var a = 2;
        function c() {
            console.log(this.a);
            console.log(a);
        }
        return c;
    }
    console.log(this.a); //undefined
    console.log(a); //1
    b()(); //undefined 2
}
var a = 1;
function  b() {
    var a = 2;
    function c() {
        console.log(this.a);
        console.log(a);
    }
    return c;
}
console.log(this.a); //1
console.log(a); //1
b()(); //1 2
window.onload = function () {
    var obj = {
        a: 1,
        b: function(){
            console.log(a);
            console.log(this.a);
        }
    };
    var a = 2;
    var objb = obj.b;
    obj.b(); //2 1
    objb(); //2 undefined
    obj.b.call(window); //2 undefined
}
var obj = {
    a: 1,
    b: function(){
        console.log(a);
        console.log(this.a);
    }
};
var a = 2;
var objb = obj.b;
obj.b(); //2 1
objb(); //2 2
obj.b.call(window); //2 2
function fn() {
    this.a = 0;
    this.b = function () {
        console.log(this.a);
    }
}
fn.prototype = {
    b: function(){
        this.a = 20;
        console.log(this.a);
    },
    c: function () {
        this.a = 30;
        console.log(this.a);
    }
}
var myfn = new fn();
myfn.b(); //0
myfn.c(); //30
var A = typeof("1");
console.log(A); //string

var x = 1,
    y = 0,
    z = 0;
function add(n){
    n = n+1;
}
y = add(x);
console.log(y); //undefined
console.log([] == ![])   //true
console.log([] == !true) //true
console.log([] == false) //true
console.log(0 == false)  //true
console.log(0 == 0)      //true
console.log(Number([]))  //0