javascript练习错题集及相关知识点

javascript练习错题集及相关知识点_第1张图片
图片发自App

总结:

alert($(window).height()); //浏览器当前窗口可视区域高度

alert($(document).height()); //浏览器当前窗口文档的高度

alert($(document.body).height());//浏览器当前窗口文档body的高度

alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width()); //浏览器当前窗口可视区域宽度

alert($(document).width());//浏览器当前窗口文档对象宽度

alert($(document.body).width());//浏览器当前窗口文档body的高度

alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin


第二题

变量提升

程序先找到所有申明,然后再赋值


javascript练习错题集及相关知识点_第2张图片
图片发自App

4.

javascript练习错题集及相关知识点_第3张图片

值传递,传递的是原来值的副本。

引用传递,除了一些特殊的(String,包装类属于不可变类),一般的引用类型在进行传递的时候,一开始形参和实参都是指向同一个地址的,这个时候形参对对象的改变会影响到实参。

面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上。这句话,在“因此”两字前,是对的,然后后面的就错了,外部对引用对象所做的改变会反映到所引用的对象上~


5.


javascript练习错题集及相关知识点_第4张图片

首先,前面+是一元运算符,相当于我们说的正负,无运算效果,但是可以将字符串等转为number类型。

 此题中017其实是八进制(因为开头0表示是8进制,开头0x是16进制),故而是是Array(15)。

这里相当于对于一个未赋值但是长度为15的数组进行number类型转化,其结果为NaN

照规则,数组对象应该采用Number,所以先执行valueOf,发现valueOf返回的是自己,所以继续执行toString,过程如下:

Number(new Array(15))

// new Array(15).valueOf()不是原始值,所以执行toString()

Number(new Array(15).toString())

Number(",,,,,,,,,,,,,,")

NaN

所以答案是NaN


你可能感兴趣的:(javascript练习错题集及相关知识点)