一、javasc一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。JavaScript兼容于ECMA标准,因此也称为ECMAScript。
基本特点:
1.是一种解释性脚本语言(代码不进行预编译)。
2.主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
3.可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
4.跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、ios等)。
二、js中深拷贝和浅拷贝的区别?
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。
深拷贝会另外创造个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
深拷贝的方法:
1.递归拷贝
2、使用 Objectcreate()方法
3、jquery 有提供一个$.extend 也可以实现
4、函数库 lodash,也有提供 cloneDeep 用来实现
三、Js 的原型和原型链?原型链的应用?
每个对象都会在其内部初始化一个属性,就是
prototype(原型),当访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去
prototype 里找这个属性,这个 prototype 又会 有自己的 prototype,于是就这样一直找下去,也就是平时所说的原型链的概念。
应用:原型链是实现继承的主要方法。
四、apply,call,和 bind 有什么区别?
三者都可以把一个函数应用到其他对象上,注意不是自身对象.applycall 是直接执行函数调用, bind 是绑定,执行需要再次调用.apply 和 call 的区别是 apply 接受数组作为参数,而 call 是接受逗号分隔的无限多个参数列表。
五、$(this)和 this 的区别是什么?
$(this) 返回一个 jQuery 对象,你可以对它调用多个 Query 方法,比如用text()获取文本,用 val()获取值等等。而 this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的当前 DOM 元素。