什么是javaScript?
1、javaScript是解释性的脚本语言,代码不进行预编译;
2、主要用来向HTML页面添加交互行为;
3、可以直接嵌入到HTML页面,但是单独写成JS文件有利于结构和行为的分离;
4、跨平台性,在绝大多数浏览器支持下,可以在多种平台下运行;
window.onload和$(document).ready的区别
1、window.onload只能出现一次(用于在网页加载完毕之后立即执行的操作即在HTML加载完毕后立即执行的方法), ( d o c u m e n t ) . r e a d y 可 以 出 现 多 次 ; 2 、 w i n d o w . o n l o a d 需 要 等 所 有 文 件 加 载 完 才 进 行 加 载 , (document).ready可以出现多次; 2、window.onload需要等所有文件加载完才进行加载, (document).ready可以出现多次;2、window.onload需要等所有文件加载完才进行加载,(document.ready)只需等文档结构加载完就可以进行加载;
为什么要使用window.onload()$(document).ready呢?
因为javaScript函数方法需要在html进行渲染完成之后才可以使用,如果没有渲染完成,我们的dom树是不完整的,这样在调用javaScript方法的时候就可能爆出undefine的错误;
javaScript基本数据类型和引用数据类型
基本数据类型:number、String、undefine、null、boolean
引用数据类型:object、array、function
call、apply、bind
call写法
可以改变this的指向,这里模拟下call改变this的指向问题;
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
上面这个例子就是add来替换sub,相当于改变了this的指向,相当于add.call(sub,3,1) == add(3,1)
,所以运行结果为:alert(4);
apply写法
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.apply(sub,[4,2]);
不同于上一种写法,apply写成数组
blind写法
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.blind(sub4,2)();
判断是否为数组的方法
console.log(arr instanceof Array);
console.log(arr.construct===Array);
console.log(Array.isArray(arr));
注意:bind是返回了一个改变上下文的一个函数,可以稍后调用,call、apply是立即执行的函数;
js中的函数其实就是对象,函数名就是function对象的引用;
原文链接:https://segmentfault.com/a/1190000011875256?utm_source=tag-newest