文档章节

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

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

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
绵阳
【吐血整理】前端求职面试资源分享,值得收藏!

面试不是单纯考察技术,而是综合能力的考查,关于面试,职位JD怎么看,知识点怎么复习,问题如何回答,项目怎么准备,和负责人如何沟通,怎么给HR留下良好印象……别小瞧这些问题,往往就是这...

慕课网官方_运营中心
07/25
0
0
四月前端知识集锦(每月不可错过的文章集锦)

目前自己组建的一个团队正在写一份面试图谱,将会在七月中旬开源。内容十分丰富,第一版会开源前端方面知识和程序员必备知识,后期会逐步写入后端方面知识。因为工程所涉及内容太多(目前已经...

夕阳
05/02
0
0
前端学习之路(从入门到入坑...)

学习前端两年多了,拿了阿里巴巴实现offer,想结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考...

阿小庆
06/14
0
0
网易音乐前端实习程序员面试的10个问题,你会几个?

近日,w3cschool app开发者头条上分享了网易音乐前端实习程序员面经,引来了不少程序员粉丝们的围观。 在分享网易音乐前端实习面试问题之前,w3cschool先跟小伙伴们分享前端学习干货: 0、h...

W3Cschool
04/17
0
0
用JavaScript的5个原因

你可能不喜欢JavaScript,也有一个很好的理由。自从90年代末,JavaScript就一直处于崛起阶段,主要是在网站和应用程序开发方面的崛起。 早期不同浏览器之间的不兼容性导致了需要开发各种库,...

samday
2014/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java Web--增删改查之二界面后台java代码(转载参考)

/** *  *//** * @author Administrator * */package dao; import java.sql.*;public class DBConn {/** * 链接数据库 * @return */  ...

小橙子的曼曼
19分钟前
1
0
Redis源码阅读笔记-对象及其类型和编码

总结之《Redis设计与实现》 对象 Redis中是使用对象来便是数据库中的键和值。 结构 // server.h...#define LRU_BITS 24...typedef struct redisObject { unsigned type:4; ...

Jian_Ming
32分钟前
1
0
laravel框架常用目录路径

laravel框架常用目录路径 app_path()app_path函数返回app目录的绝对路径:$path = app_path();你还可以使用app_path函数为相对于app目录的给定文件生成绝对路径:$path = app_p...

高处胜寒
34分钟前
0
0
记一次winserver2003系统,https无法访问,内存占用持续增加,解决办法

先交代一下环境: win server2003系统,系统装在hyper-v虚拟机里 大概2016年底的镜像,距离今天两年左右 病症:大概9月10号左右用这个镜像还可以访问https,但是今天用这个镜像新装的系统,就...

阳阳露
49分钟前
3
0
Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部