文档章节

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

小木fan
 小木fan
发布于 2017/09/03 15:31
字数 644
阅读 16
收藏 0
点赞 0
评论 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
博文 51
码字总数 13186
作品 0
绵阳
前端学习之路(从入门到入坑...)

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

阿小庆 ⋅ 06/14 ⋅ 0

四月前端知识集锦(每月不可错过的文章集锦)

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

夕阳 ⋅ 05/02 ⋅ 0

网易音乐前端实习程序员面试的10个问题,你会几个?

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

W3Cschool ⋅ 04/17 ⋅ 0

JS实现HTML静态页传值的方法

JS实现HTML静态页传值的方法 作者:前端开发-武方博 发布:2012-10-29 分类:javascript 阅读:8,735次 此处使用JS方式实现静态页之间值传递,其实很简单,废话不多说,见代码,先看index.h...

thinkyoung ⋅ 2015/06/01 ⋅ 0

物联网学习笔记——构建RESTFul平台1

0.前言 前些时间顺着Yeelink学习了RESTFUL,使用PHP和Slim框架尝试实现简单的REST API,树莓派可通过GET方法获得JSON数据包,通过这种方式实现了树莓派和服务器(我的PC)的互动。但是由于没...

thinkyoung ⋅ 2014/12/02 ⋅ 0

WEB前端学习面试加分题:同学,你了解TypeScript吗?

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/11 ⋅ 0

太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数

面试攒经验,let's go! 值此高考来临之际,闲不住的我又双叒叕出发去面试攒经验了,去了公司交待一番流程后,面试官甩给了我一张A4纸,上面写着一道js算法笔试题(一开始我并不知道这是在考...

闰土大叔 ⋅ 06/07 ⋅ 0

前端要以正确的姿势学习编译原理(上篇)

前端要以正确的姿势学习编译原理(上篇) 发布于 02:05 文章被以下专栏收录

brambles ⋅ 05/22 ⋅ 0

给Web前端初学者的一些建议和学习方法路线

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/24 ⋅ 0

weex eros框架源码解析

weex eros是基于alibaba weex框架进行二次封装的客户端跨平台开发框架,主要是为前端开发者(可以不用熟悉客户端开发)提供的一站式客户端app开发解决方案。官网地址为:https://bmfe.github...

雅爸学技术 ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout基于内存的DataMode 推荐引擎Demo2

Mahout基于内存的DataMode 推荐引擎Demo2 //注释的部分是基于文件也可以理解为基于日志文件的, //DataModel 可以有很多种,实现abstractDataMode的子类,原则上都可以作为数据源,个人觉得,...

xiaomin0322 ⋅ 10分钟前 ⋅ 0

Docker部署Tomcat及Web应用

一、在线下载docker yum install -y epel-releaseyum install docker-io # 安装dockerchkconfig docker on # 加入开机启动service docker start # 启动docker服务 1 ...

Jeam_ ⋅ 10分钟前 ⋅ 0

研发运营一体化能力成熟度模型

研发运营一体化是指在 IT 软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部 署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无...

stars永恒 ⋅ 15分钟前 ⋅ 0

jQuery缩小放大触发事件

jquery的resize()方法使用 <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> var i = 0; $(document).ready(function(){ ......

RobertZou ⋅ 16分钟前 ⋅ 0

eclipse python 搭建

https://jingyan.baidu.com/article/9113f81b68ebce2b3214c7e0.html https://www.cnblogs.com/ZhangRuoXu/p/6397756.html https://blog.csdn.net/zhangphil/article/details/78962159 字符集......

之渊 ⋅ 16分钟前 ⋅ 0

weex,react native,flutter

weex: 一次编写,处处运行 RN: 学一次,到处写(针对安卓,IOS平台特性 各自写,会有很大一部分是一样的代码) 这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因...

东东笔记 ⋅ 22分钟前 ⋅ 0

Spring Cloud微服务分布式云架构-集成项目

Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必...

明理萝 ⋅ 27分钟前 ⋅ 1

SpringMVC图片上传问题解决

当我们上传图片时一直发现: MultipartFile file = null; if (request instanceof MultipartHttpServletRequest) 匹配不上, 解决方案: 在前端xml加入如下配置代码即可 <!-- 图片上传bean --...

泉天下 ⋅ 29分钟前 ⋅ 0

Spring表达式语言(SpEL)

1、SpEL引用 Spring EL在bean创建时执行其中的表达式。此外,所有的Spring表达式都可以通过XML或注解的方式实现。下面将使用Spring表达式语言(SpEL),注入字符串,整数,Bean到属性。 SpEL的...

霍淇滨 ⋅ 45分钟前 ⋅ 0

Gradle使用阿里云镜像

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方做一点系统全局的设置,如配置仓库地址。 你可以在以下几个位置实现仓库地址...

明MikeWoo ⋅ 54分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部