文档章节

前端面试宝典(2)——JavaScript

小木fan
 小木fan
发布于 2017/09/03 15:31
字数 644
阅读 30
收藏 0

精选30+云产品,助力企业轻松上云!>>>

JavaScript

     数据类型

     

         var x;                       //x为undefined

         var x = 4;                //x为number

         var x = "Bill";          //x为字符串

         var x = new Array(); //x为数组

         var x = {firstname:"Bill",lastname:"Gates",id:5566}     //x为对象

         数据类型常见的转换方法

         面向对象——封装、继承

       http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

       http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

         封装1.原始模式

            猫看做一个对象Object,有name和color属性。

var Cat = {
    name : '',
    color : '',
}

            创建两个实例对象

var cat1 = {};//创建一个空对象
cat1.name = "one";
cat1.color = "yellow";
var cat2 = {};
cat2.name = "two";
cat2.color = "black";

            两个属性封装在一个对象里,缺点:生成多个实例,麻烦;实例和原型没有关系看起来。

          2.原始模式的改进,解决重复代码问题

function Cat(name,color) {
     return {
         name : name,
         color : color,
     }
}

var cat1 = Cat("one","yellow");
var cat2 = Cat("two","balck");

             cat1和cat2仍没有内在的联系,不能看出是出自同一原型对象的实例

           3.构造函数模式

              从原型对象生成实例,js提供了一个构造函数(Constructor)模式

function Cat(name,color){
    this.name = name;
    this.color = color;
}
var cat1 = new Cat("one","yellow");
var cat2 = new Cat("two","black");

alert(cat1.constructor == Cat); //true
alert(cat2.constructor == Cat); //true

          4.构造函数的问题

             浪费内存

function Cat(name,color){
     this.name = name,
     this.color = color,
     this.type = "cat",
     this.eat = function(){alert("eat fish");},
}

var cat1 = new Cat("one","yellow");
var cat2 = new Cat("two","black");

             因为Cat的所有的type和eat都是一样的内容,每创建一个实例对象,就会生成一个,占内存不高效

           5.prototype模式

              js规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有的属性和方法,都会被构造函数的实例继承。

function Cat(name,color) {
     this.name = name,
     this.color = color,
}
Cat.prototype.type = "cat";
Cat.prototype.eat = function(){alert("eat fish");};

var cat1 = new Cat("one","yellow");
var cat2 = new Cat("two","black");

              每个实例的type和eat,都是同一个内存地址,指向prototype对象。

            继承

         闭包

         插件

         作用域

          1.全局变量拥有全局作用域,函数内声明的变量只在函数体内使用,作用域是局部的。

          2.局部变量优先级高于全局变量,未用var声明的变量为全局变量,无论是在内部还是外部定义。

          3.不同于C,JS不存在块级作用域。

          4.函数变量作用域在函数内部皆有效,无论是在哪定义。

          

         跨域

         原型链

         模块化

         自定义事件

         内存泄漏

         事件机制

         异步装载回调

         模板引擎

         Nodejs

         JSON

        ajax

 

 

 

小木fan
粉丝 1
博文 52
码字总数 13186
作品 0
绵阳
私信 提问
加载中
请先登录后再评论。
【面试合辑】抓住金三银四涨薪好时机,这些进阶技术点必须掌握!

算法、Python、AI、测试、PHP篇传送门在此! 每年的三月和四月,企业释放招聘岗位、社会人员跳槽,汇集成年度人才招聘的一个高峰季节,行称“金三银四”! 脉脉数据显示,在全行业中,IT互联...

慕课网官方_运营中心
04/01
0
0
2020年前端面试复习必读精选文章【赠复习导图】

前言 之前写过一篇 一年半经验如何准备阿里巴巴前端面试,给大家分享了一个面试复习导图,有很多朋友说希望能够针对每个 case 提供一个参考答案。 写答案就算了,一是「精力有限」,二是我觉...

axuebin
04/06
0
0
一个优秀的前端都应该阅读这些文章

前言 的确,有些标题党了。起因是微信群里,有哥们问我,你是怎么学习前端的呢?能不能共享一下学习方法。一句话也挺触动我的,我真的不算是什么大佬,对于学习前端知识,我也不能说是掌握了...

osc_b7lz7dji
04/16
3
0
一个合格的前端都应该阅读这些文章

前言 的确,有些标题党了。起因是微信群里,有哥们问我,你是怎么学习前端的呢?能不能共享一下学习方法。一句话也挺触动我的,我真的不算是什么大佬,对于学习前端知识,我也不能说是掌握了...

Neal_yang
2019/07/24
0
0
一个合格(优秀)的前端都应该阅读这些文章

的确,有些标题党了。起因是微信群里,有哥们问我,你是怎么学习前端的呢?能不能共享一下学习方法。一句话也挺触动我的,我真的不算是什么大佬,对于学习前端知识,我也不能说是掌握了什么捷...

osc_bkg5rgl1
2019/07/27
1
0

没有更多内容

加载失败,请刷新页面

加载更多

Cocoa Autolayout:内容拥抱与内容压缩阻力优先

问题: I can't find a clear answer on Apple documentation regarding Cocoa Autolayout about the difference between content hugging and compression resistance. 关于Cocoa Autolayou......

javail
40分钟前
12
0
OSChina 周二乱弹 —— 附近居民接连失踪,你们有什么头绪吗

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《伤离别(原版)》- 黄霑 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :睡...

小小编辑
50分钟前
17
0
IntelliJ IDEA 默认快捷键大全

Remember these Shortcuts 常用 功能 快捷键 备注 ● Smart code completion Ctrl + Shift + Space - ● Search everywhere Double Shift - ● Show intention actions and quick-fixes Alt......

巨輪
今天
24
0
Hacker News 简讯 2020-07-14

更新时间: 2020-07-14 02:01 Chipmaker Analog Devices to Acquire Maxim Integrated for $21B - (reuters.com) 芯片制造商模拟设备公司将以210亿美元收购Maxim Integrated 得分:92 | 评论:......

FalconChen
今天
129
0
绕过移动端系统限制的 dlopen 库 byOpen

byOpen是一个绕过移动端系统限制的增强版dlfunctions库。 支持特性 Android 支持App中加载和使用Android系统库接口(即使maps中还没有被加载也支持)。 Android 7以上dlopen, System.load都是...

shzwork
昨天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部