基础           原型  原型链

作用域  闭包

异步  单线程

JS API        DOM操作

AJAX

事件绑定

开发环境    版本管理

模块化

打包工具

运行环境    页面渲染

性能优化

面试题

1.JS中使用 typeof 能得到的哪些类型?

考点:JS变量类型

  • JS中有哪些内置函数
  • JS变量按照存储方式区分为哪些类型,并描述其特点

值类型      内存地址 不会因为赋值而相互干预

引用类型   指针  节省内存空间   可以无限制扩展属性

  • 如何理解JSON

知识点  变量类型  变量计算

变量类型  值类型 VS 引用类型(对象,数组,函数)

typeof 运算符详解

typeof undefined  //undefined
typeof 'abc' //string
typeof 123 //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object (空的指针,定义了一个位置)
typeof console.log //function /*typeof只能区分值类型的详细类型,对引用类型无能为力,能区分函数*/
/*JS中的内置函数 -- 数据封装类对象*/
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
/*内置对象*/
Math
JSON
//如何理解JSON
//一种数据格式,JSON只不过是一个JS对象而已 // 2个API
JSON.stringify({a:10,b:20})
JSON.parse('{"a":10,"b":20}') 

2.何时使用 == ,何时使用 === ?

考点:强制类型转换

/* === 中没有类型转换*/
if(obj.a == null){
/*
对象的属性是否存在
这里相当于 obj.a === null || obj.a === undefined ,简写形式
这是jquery 源码中推荐写法
*/
}

 除了这个之外,其他都用 ===  

值类型 会发生类型转换计算的情况

  • 字符串拼接
  • ==运算符
  • if语句
  • 逻辑运算  
/*字符串拼接*/
var a = 100 + 10 //110
var b = 100 + '10' //10010 /*==运算符*/
100 == '100' //true
0 == '' //true
null == undefined //true /*if语句*/
var a=ture
if(a){
// ...
}
var b=100
if(b){
// ...
}
var c=''
if(c){
// ...
}
/*if()里会转成false的集中情况*/
/*0 NaN '' null undefined false*/ /*逻辑运算*/
console.log(10 && 0) //0
console.log('' || 'abc') //abc
console.log(!window.abc) //true //判断一个变量会被当成 true 还是 false
var a=100
console.log(!!a)

3.window.onload 和 DOMContentLoaded 的区别?

考点:浏览器渲染过程

4.用 JS 创建10个 <a> 标签,点击的时候弹出对应的序号

考点:作用域

5.简述如何实现一个模块加载器,实现类似 require.js 的基本功能

考点:JS模块化

6.实现数组的随机排序

考点:JS基础算法

js 面试知识点的更多相关文章

  1. 前端开发面试知识点大纲--摘自jackyWHJ

    前端开发面试知识点大纲:HTML&CSS:    对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...

  2. Java web 前端面试知识点总结

    经过几家大厂面试,目前成功拿到唯品会offer,分享一下我的面试知识点总结: 耦合性:也称块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性 ...

  3. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  4. web开发前端面试知识点目录整理

    web开发前端面试知识点目录整理 基本功考察 关于Html 1. html语义化标签的理解; 结构化的理解; 能否写出简洁的html结构; SEO优化 2. h5中新增的属性; 如自定义属性data, ...

  5. JS 进阶知识点及常考面试题

    将会学习到一些原理相关的知识,不会解释涉及到的知识点的作用及用法,如果大家对于这些内容还不怎么熟悉,推荐先去学习相关的知识点内容再来学习原理知识. 手写 call.apply 及 bind 函数 涉及 ...

  6. web前端面试知识点整理

    一.HTML5新特性 本地存储 webStorage websocket webworkers新增地理位置等API对css3的支持canvas多媒体标签新增表单元素类型结构标签:header nav ...

  7. 由浅入深,66条JavaScript面试知识点

    前言 我只想面个CV工程师,面试官偏偏让我挑战造火箭工程师,加上今年这个情况更是前后两男,但再难苟且的生活还要继续,饭碗还是要继续找的.在最近的面试中我一直在总结,每次面试回来也都会复盘,下面是我这几 ...

  8. JS重要知识点

    这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...

  9. JS重要知识点(转载 学习中。。。)

    这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...

随机推荐

  1. Java基础(认识Java)

    我们要学习Java那么就要首先认识一下Java: Java是什么 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James ...

  2. eclipse添加spring boot 插件

    在使用eclipse开发时,一般需要添加spring boot的管理插件,这样更方便我们开发,在写application.yml或properties配置的时候,也有相关的提示,而且还可以从配置文件中 ...

  3. 运行maven install命令时出现错误(BUILD FAILURE)

    运行run as—>maven install时出现以下错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-com ...

  4. 新建Maven项目建成后本应该有的src/main/java和src/test/java目录并没有出现:

    转自:http://www.cnblogs.com/dong-dong-dong/p/9565466.html 新建Maven项目建成后本应该有的src/main/java和src/test/java ...

  5. 缓存算法(FIFO 、LRU、LFU三种算法的区别)

    FIFO算法 FIFO 算法是一种比较容易实现的算法.它的思想是先进先出(FIFO,队列),这是最简单.最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小.空间满的时 ...

  6. LRU的实现

    https://blog.csdn.net/elricboa/article/details/78847305 未看懂https://zhuanlan.zhihu.com/p/34133067

  7. MySQL连接java

    1.创建一个java project,建一个lib文件. 下载MySQL-connecor. 将下载好的文件打开,将mysql-connector-java-5.0.8-bin.jar文件粘贴复制到l ...

  8. MySQL简单查询语句练习

    数据查询语法(DQL) DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 语法: SELECT selection_list /*要查询的列名称*/ F ...

  9. PHP中buffer的认知

    buffer其实就是缓冲区,一个内存地址空间,只要用于存储数据区域. <?php echo 1; 运行这段代码,浏览器会显示1,其实中间会经历一个buffer(数据1先到buffer,当buff ...

  10. RabbitMQ(2) 一般介绍

    RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apa ...