1.javascript的typeof返回哪些数据类型
alert(typeof [1, 2]); //object
alert(typeof 'leipeng'); //string
var i = true;
alert(typeof i); //boolean
alert(typeof 1); //number
var a;
alert(typeof a); //undefined
function a(){;};
alert(typeof a) //function
2.例举3种强制类型转换和2种隐式类型转换
隐式转换:==、!!(!!常用于判断非空)
if(!!a){
//a有内容才执行的代码...
}
3.常见API与数组方法
Push() |
尾部添加 |
pop() |
尾部删除 |
Unshift() |
头部添加 |
shift() |
头部删除 |
split() |
切割成数组的形式 |
join() |
将数组转换成字符串 |
4.IE和DOM事件流的区别
(2)参数不一样;
(3)事件加不加on;
(4)this指向问题。
5.call和apply的区别
call方法:
语法:call(thisObj,Object1,Object2...)
定义:调用一个对象的一个方法,以另一个对象替换当前对象,改变当前的this指向的问题。
说明:call 方法可以用来代替另一个对象调用一个方法,可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
apply方法:
语法:apply(thisObj,[argArray])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明: 如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
6.b继承a的方法
function A( age, name ){
this.age = age;
this.name = name;
}
A.prototype.show = function(){
alert('父级方法');
}
function B(age,name,job){
A.apply( this, arguments );
this.job = job;
}
B.prototype = new A();
var b = new A(14,'侠客行');
var a = new B(15,'狼侠','侠客');
7.添加 删除 替换 插入到某个节点的方法
obj.appendChid()
obj.removeChild()
obj.replaceChild()
obj.insertBefore()
8.javascript的本地对象,内置对象和宿主对象
内置对象为gload、Math等不可以实例化的;
宿主为浏览器自带的document、window 等。
9.window.onload 和document.ready的区别
引入js文件的两种方式:一种原生的,一种是jQuery库的入口函数。
window.onload 是在dom文档树加载完和所有文件加载完之后执行一个函数Document.ready原生种没有这个方法,jquery中有 $(document).ready(function(){代码}),在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。
$(document).ready要比window.onload先执行,执行的上下文不同,window.onload只能出来一次,$(document).ready可以出现多次。
10.”==”和“===”的不同、javascript的同源策略是指?
前者会自动转换类型,只是比较数值,不比较数据类型,后者即比较数据类型也比较数值。
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、议和端口号的组合。