- js的数据类型有哪些,判断基本数据类型的操作符有什么
数据类型:基本数据类型(string,number,boolean,null,undefined)
和引用数据类型(Object,Array),通过typeof关键字判断数据类型
- document.write()和console.log()有什么不同?实际开发中用什么,为什么要用它
document.write()都是输出内容,都必写在script标签内,前者是在页面中输出,
如果位于script标签位于head内并位于head中其他内容的开始,
会把head内的内容清除,并输出内容,
如果script在body和其他位置并位于body中的开始位置,
会把body中的内容清空,并输出内容;
而后者是在控制台输出,在实际我开发中使用后者,原因是,他不会覆盖原有代码
- foo = foo || bar , 这段代码是什么意思,为什么要这么写
相当于
if(!foo){
foo = bar;
}
如果foo存在,且之不变,就返回foo,否则把bar的值赋给foo.
这么写的原因:简洁
- 列举你知道关于js的浏览器兼容问题
1.
obj.事件 = function(ev){
var e = ev || window.event;
}
2.
obj.事件 = function(ev){
var e = ev || window.event;
var t = e.target ||e.srcElement;
}
3. var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
4. var clientHeight = document.body.clientHeight || docuemnt.documentElement.clientHeight;
var winH=document.body.clientHeight||document.docuemntElement.clientHeight;//网页可见区域宽
//以上为不包括边框的宽高,如果是offsetWidth或者offsetHeight的话包括边框
var winWW=document.body.scrollWidth||document.docuemntElement.scrollWidth;//整个网页的宽
var winHH=document.body.scrollHeight||document.docuemntElement.scrollHeight;//整个网页的高
var scrollHeight=document.body.scrollTop||document.docuemntElement.scrollTop;//网页被卷去的高
var scrollLeft=document.body.scrollLeft||document.docuemntElement.scrollLeft;//网页左卷的距离
- 请解释浏览器事件流是怎么回事?
事件流描述的是从页面接收事件的顺序,分为冒泡型事件和捕获型事件,
这两个事件是在同一时间提出的,前者是微软提出的,后者是网景提出的,
但两者顺序完全相反.冒泡型事件是从具体的元素到不具体的元素,
捕获型事件是从不具体的元素到具体的元素,由于老的浏览器不支持捕获型事件,所以用冒泡型事件比较多
- 为什么管cookie叫会话跟踪技术?
会话跟踪英文是session tracking
- 什么是utf-8,它和ASCII有什么关系
utf-8就是在互联网上使用最广泛的一种unicode编码,是unicode的实现方法之一,
utf-8最大的特点就是,他是引种变长的编码方式,
他可以使用1-4个字节表示一份符号,根据不同的符号二变化字节长度.
如果一个字节的第一位是0,则这个字节单独就一个字节;如果第一位是1,
则连续多少个1,就表示当前字符站多少个字节.
关系,对于英文单词,uft-8编码就是ASCII
- 如何进行严格模式,有什么好处
"use strict"
消除js语法的不合理性,不严谨处,减少一些怪异的行为
消除代码运行的一些不安全支出,保证代码运行的安全
提高编译器效率,增加代码运行速度
为未来新版本的js做铺垫
- 什么是NaN,他是什么类型,怎么测试一个值是否等于NaN?
NaN是Not a number 的缩写,是js的一种特殊数值.类型是number,
可以通过isNaN(param)来判断一个值是否是NaN,是NaN则返回true,否则返回false.
在ES6中,isNaN()成为Number的静态方法:Number.isNaN()//是NaN返回false,不是返回true