JavaScript基础问题个人归纳

1、js往数组中加入元素的方式有哪些?
(1)向数组结尾添加元素:

  • 用push()—简单 或 concat()—比较高效:
var arr = [1,2,3,4,5];
var arr2 = [];
arr.push(6);
//arr[arr.length] == 6;
arr2 = arr.concat([6]);

(2)向数组中间添加元素:

  • 使用splice()是简单的,也是最高效的方法:
var items = ['one', 'two', 'three', 'four'];
items.splice(items.length / 2, 0, 'hello'); 
//['one','two','hello','three','four']

(3)向数组的头部添加元素:

  • unshift操作的是原始数组,concat会返回一个新数组:
var arr = [1,2,3,4,5];
arr.unshift(0);  //[0,1,2,3,4,5]
[0].concat(arr);  //[0,1,2,3,4,5]

2、jQuery中 显示/隐藏 元素的方法

  • 使用jQuery的 hide()show() 方法实现显示与隐藏;
  • 使用jQuery的 .attr() 方法对样式进行操作:
    $("#demo").attr(“style”,“display:none或block;”);//隐藏或显示div
  • 使用 .css() 方法对样式进行操作:
    $("#demo").css(“display”,“none"或"block”);//隐藏或显示div

3、js中延时指定毫秒数调用函数是?
setTimeout()—查看详细

4、js原型链是什么?

  • 实例的 _proto_ 属性(原型)等于其构造函数的 prototype 属性。
  • Object.proto ===Function.prototype
  • Function.prototype.proto === Object.prototype
  • Object.prototype.proto === null
  • 参考:jsliang-面试准备5.3原型与原型链
  • 原型链图解

在这里插入图片描述

5、js浅拷贝与深拷贝是?

  • 浅拷贝:仅仅拷贝了地址,不是完整复制,修改原对象拷贝对象也会随之改变;
  • 深拷贝:完全备份体,有自己的地址,修改原对象拷贝对象不会随之改变。
  • 跳转查看JS篇第四条

6、事件捕获与事件冒泡的区别是?

  • 事件捕获:捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定);
  • 事件冒泡:和捕获阶段相反—冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发;
  • 事件捕获和事件冒泡属于两个相反的过程,这里可以有一个我感觉十分恰当的比喻,当你把一个可以漂浮在水面上的物品,使劲向水里砸下去,它会首先有一个下降的过程,这个过程就可以理解为从最顶层向事件发生的最具体元素(目标点)的捕获过程;之后由于浮力大于物体自身的重力,物体会在到达最低点( 最具体元素)之后漂浮到水面上,这个过程相对于事件捕获是一个回溯的过程,即事件冒泡。
    -原文链接:终于弄懂了事件捕获与事件冒泡
  • 事件捕获与事件冒泡过程参照图
    事件捕获与事件冒泡过程
  • 简书—事件冒泡和事件捕获到底有何区别

7、ES6中有哪些新特性?

  • Default Parameters(默认参数) in ES6;
    Template Literals (模板文本)in ES6;
    Multi-line Strings (多行字符串)in ES6;
    Destructuring Assignment (解构赋值)in ES6;
    Enhanced Object Literals (增强的对象文本)in ES6;
    Arrow Functions (箭头函数)in ES6;
    Promises in ES6;
    Block-Scoped Constructs Let and Const(块作用域构造Let and Const);
    Classes(类) in ES6;
    Modules(模块) in ES6;
    【备注】这里只列出了10条比较常用的特性。并不是所有的浏览器都支持ES6模块,所以你需要使用一些像jspm去支持ES6模块。
  • 详细可查看:十大常用新特性
  • ES6教程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值