前端开发面试题之JavaScript(转自公众号)(1)
js基本数据类型:Undefine Number Null Boolean String;
js内置对象:数据封装类对象:object、Array、Boolean、String;
其他:Function、 Arguement、Math、Date、RegExp、Error;
JavaScript的基本代码规范:
对字符串使用单引号;
使用对象字面量代替new Array()这种形式;
绝对不要在一个非函数块李声明一个函数,把那个函数赋给一个变量,浏览器允许你这么做,但是他们解析不同
不要使用全局函数;
总是使用var来声明变量,如果不这么做将导致产生全局变量,我们要避免污染全局命名空间;
switch语句必须有default分支;
语句结束加分好;
for——in循环中的变量应该使用var关键字明确限定作用域,从而避免作用域污染;
避免单个字符名,取名有意义;
驼峰命名规则;
当给事件附加数据时,传入一个哈希而不是原始值,这可以让后面的贡献者加入更多数据到事件数据里,而不用找出并更新那个时间的事件处理器;
JavaScript原型,原型链:每个对象都会在其内部初始化一个属性,就是prototype,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么就会去prototype找这个属性;这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链;
特点:JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一改变;
JavaScript有几种类型的值:栈:原始数据类型;堆:引用数据类型 引用数据类型在栈中存储了指针,该指针指向堆中该实体的首地址,当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中或的实体;
JavaScript实现继承:
(1)构造继承
(2)原型继承
(3)实例继承
(4)拷贝继承
原型prototype机制或apply和call方法实现比较简单,建议使用构造函数与原型混合方式
function parent(){
this.name="song";
}
function child(){
this.age="28";
}
child.prototype=new parent();
var demo=new child();
alert(demo.age+demo.name);
JavaScript创建对象的方式(使用内置对象或自定义对象):
对象字面量:person={name:‘jijie’,age:‘18’};
用function来模拟无参的构造函数
用function模拟带参的构造函数(用this关键字构造上下文属性)
用工厂方式来创建对象
var person=new person();
person.age=19;
person.name="ji";
用原型方式创建
function person(){}
person。prototype.name="ji";
person.protype.age=19;
用混合方式创建
function person(name,age){
this.age=19;
this.name=“ji”}
person。prototype。event=function(){}
eval功能:把对应的字符串解析成js代码并执行,应该避免使用eval不安全,耗性能;
null表示对象被定义了值为空,undefined表示不存在这个值;
前端开发面试题之JavaScript(转自公众号)(1)的更多相关文章
- 前端开发面试题总结之——JAVASCRIPT(一)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- 前端开发面试题总结之——JAVASCRIPT(三)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- 前端开发面试题总结之——JAVASCRIPT(二)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- 前端开发面试题-JavaScript(转载)
本文由 本文的原作者markyun 收集总结. 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol ...
- 前端开发面试题收集 JS
前端开发面试题收集-JS篇 收集经典的前端开发面试题 setTimeout的时间定义为0有什么用? javascript引擎是单线程处理任务的,它把任务放在队列中,不会同步执行,必须在完成一个任务后才 ...
- 前端开发面试题总结之——HTML
______________________________________________________________________________________________ 相关知识点 ...
- 前端开发面试题总结之——CSS3
____________________________________________________________________________________________ 相关知识点 布 ...
- 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
##2017.10.30收集 面试技巧 5.1 面试形式 1) 一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2) 面试官喜欢什么样的人 ü 技术好. ...
- 前端开发面试题-HTML(转载)
本文由 本文的原作者markyun 收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的! ...
随机推荐
- 跟踪记录ABAP对外部系统的RFC通信
对SAP系统而言,RFC最常见的系统间通信方式,SAP与SAP系统及SAP与非SAP系统之间的连接都可以使用它.它的使用便利,功能强大,在各种接口技术中,往往是最受(ABAP开发者)青睐的选择. 查询 ...
- The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法)(转)
Microsoft SQL Server 5030错误解决办法 今天在使用SQL Server时,由于之前创建数据库忘记了设置Collocation,数据库中插入中文字符都是乱码,于是到DataBas ...
- JS高级学习历程-10
[面向对象] 面向对象的三大特性:封装.继承.多态 封装:在“类”里边有关键字public.protected.private 对成员进行声明,这样每个成员的访问都会受到不同关键字的限制. 继承:在p ...
- CC11:链表分割
题目 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针.注意:分割以后保持 ...
- 【SPOJ】Substrings
出现次数很好处理,就是 \(right/endpos\) 集合的大小 那么,直接构建 \(SAM\) 求出每个位置的\(right\)集合大小 直接更新每个节点的\(longest\)就行了 最后短的 ...
- CodeForces - 1005A-Tanya and Stairways(模拟)
Little girl Tanya climbs the stairs inside a multi-storey building. Every time Tanya climbs a stairw ...
- Web自动化测试—PO设计模式(三)
test_case目录下面放你要执行的用例 目录结构 ui_auto_test --src --test_case --__init.py --test_login_case --pages --__ ...
- Linux+.NetCore+Nginx
Linux+.NetCore+Nginx搭建集群 本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西 ...
- 077 Combinations 组合
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合.例如,如果 n = 4 和 k = 2,组合如下:[ [2,4], [3,4], [2,3], [1,2], [ ...
- HDU 5883 F - The Best Path 欧拉通路 & 欧拉回路
给定一个图,要求选一个点作为起点,然后经过每条边一次,然后把访问过的点异或起来(访问一次就异或一次),然后求最大值. 首先为什么会有最大值这样的分类?就是因为你开始点选择不同,欧拉回路的结果不同,因为 ...