前端开发面试题之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 收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的! ...
随机推荐
- 如何在 Laravel 中 “规范” 的开发验证码发送功能
什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...
- python所有的魔术方法
据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, ...
- HDU-2119-Matrix(最大匹配)
链接:https://vjudge.net/problem/HDU-2119#author=Smilencer 题意: 众所周知,tyz是一个写bug小能手,以至于如果没有队友的帮助,就ac不了程序. ...
- 2017"百度之星"程序设计大赛 - 初赛(B)小小粉丝度度熊
Problem Description 度度熊喜欢着喵哈哈村的大明星——星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要 ...
- 手动配置 FreeBSD 网络
设置 IP 地址和网关 编辑 /etc/rc.conf $ sudo vim /etc/rc.conf # 设置ip地址和子网掩码 ifconfig_em0="inet 192.168.0. ...
- java中 json和bean list map之间的互相转换总结
JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...
- jQuery.data() 与 jQuery(elem).data()源码解读
之前一直以为 jQuery(elem).data()是在内部调用了 jQuery.data(),看了代码后发现不是.但是这两个还是需要放在一起看,因为它们内部都使用了jQuery的数据缓存机制.好吧, ...
- 在Eclipse下搭建Hadoop开发环境
在前面的博文中博主展示了如何在虚拟机中搭建Hadoop的单节点伪分布集群,今天给大家介绍一下如何在Eclipse环境中搭建Hadoop的管理和开发环境,话不多说,下面我们就进入正题吧! 1.JDK安装 ...
- 如何更改Android的默认虚拟机地址(Android virtual driver路径设置)
1.将其他目录下的.android复制到C:\Documents and Settings\Administrator路径下(具体的用户名看自己的).然后进入.android\avd打开avd.ini ...
- 复习KMP
KMP刚学的时候,看不懂. 再看,哇!原来是这样! 用的时候,忘了. 为了不再跌倒,我决定,记住吧... 在我看来,KMP一般用于字符串匹配时的防超时优化. 他的精髓就是,利用已经匹配的信息,简化这之 ...