javaScript常用面试题

什么是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).ready2window.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值