1、获取样式
(1)style只能获取到行间样式的属性
(2)火狐getComputedStyle(obj,null)[attr],IE:obj.currentStyle[attr]

2、ready、onload区别:
(1)ready 事件的触发,表示文档结构已经加载完成(不包含图片等非文字媒体文件),执行时机要早于onload
(2)onload 事件的触发,表示页面包含图片等文件在内的所有元素都加载完成。

3、闭包概念:
(1)如何从函数外部读取局部变量?——在函数内部再定义一个函数,再return该函数。
(2)JS允许使用内部函数(函数定义和函数表达式)位于另一个函数的函数体内,且这些内部函数可以访问它们所在外部函数中声明的所有局部变量、参数和其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
(3)读取函数内部的局部变量;让变量的值始终保存在内存中。
(4)闭包微观的理解:定义的时候确定作用域链,执行时候确定执行环境,创建活动对象,为活动对象添加arguments属性、和形参、函数引用。
(5)定义和执行:函数作用域是在定义函数的时候确定的,而不是执行函数的时候。
(6)JS垃圾回收机制:如果一个对象不再被引用,会被回收;如果两个对象互相引用,而不再被第3者所引用,则这两个互相引用的对象也会被回收。

(7)静态封装环境,即模拟静态私有变量

4、变量作用域
(1)作用域链查找规则
(2)没有块级作用域
(3)变量声明会提前,赋值不会提前
(4)不使用var都是全局变量,全局变量都是window的属性

5、(1)函数自执行里面可以当做块级作用域

(2)通过私有作用域隐藏私有变量,而且不需要实例化。

6、html字符串转为jQuery对象;jQuery对象与dom对象互转。

7、引用传递和值传递
(1)基本数据类型和引用数据类型
(2)在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址(与C语言一样),在栈中的这个特殊的变量就变成了数组或者对象的引用变量。栈中的变量指向堆内存中的变量,这就是 Java 中的指针。引用变量实际上就是指向堆内存里内容的指针。
(3)修改引用变量,被引用的对象也会修改。若不想同时修改,就B.prototype[i] = createObject.prototype[i]这样循环开辟新的内存空间。

8、(1)this指向机制:在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。如果调用括号()的左边是引用类型的值,this将设为引用类型值的base对象,在其他情况下(与引用类型不同的任何其它属性),这个值为null。不过,实际不存在this的值为null的情况,因为当this的值为null的时候,其值会被隐式转换为全局对象。

(2)构造函数中的this新创建的对象实例

9、定时器的工作机制:循环执行过程中,几乎同时设置了5个定时器,一般情况下,这些定时器都会在1秒之后触发,而循环完的输出是立即执行的。

10、深浅拷贝问题:
(1)利用数组方法concat()/slice()可以实现数组的浅拷贝

  如果concat的数组都是基本类型,那么返回的副本互不影响;如果包含引用类型,那么就是浅拷贝

(2)简单粗暴实现数组深拷贝的方法:先JSON.stringify(),在JSON.parse()

  var new_arr = JSON.parse( JSON.stringify(arr) );new_arr[3][0] = 'new';

  改变new_arr就不会对原来有影响。

(3)浅拷贝的实现:遍历对象,然后把属性和属性值放入一个新对象(只拷贝对象,判断是数组还是对象、hasOwnProperty())
(4)深拷贝的实现:在拷贝的时候判断属性值类型,如果是对象,就递归调用深拷贝函数

(5)深拷贝函数原生js实现

11、循环事件绑定方法
(1)采用闭包(node(i)和i当变量传)
(2)采用新增索引值(node(i).index = i,把i值赋予新加的变量,然后this.index获取)
(3)ES6块级作用域变量声明let
(4)采用new关键字
(5)forEach()方法

12、原型的应用
Object.create(obj);//返回一个对象,其原型为参数obj对象。
var b=Object.create(a),b没有的属性就从原型a上去找,b有的属性就取自己的属性

13、new创建对象发生的事情(四步):
(1)创建一个对象实例
(2)将构造函数作用域赋值给新对象(因此this指向该新对象)
(3)执行构造函数代码(该执行指的是为这个新对象添加属性)
(4)返回新生成的对象实例
有return的函数在new时对this的影响(正常的构造函数是没有return语句):如果return的是一个对象,那么this会指向返回的对象,如果return的不是一个对象或null(null是特例),那么this还是指向函数的实例。

(5)如果函数中的this被不包含子对象的对象所调用,那么this指向的就是调用它的对象。如果函数中的this被包含多级对象的对象调用,this指向的也只是它上一级的对象

14、事件冒泡
(1)阻止事件冒泡的方式(return false;event.stopPropagation())、
阻止默认事件的方式(return false;event.preventDefault())
(2)冒泡机制:3种
(3)不能冒泡的事件:blur、focus、load、unload等

15、事件代理和事件委托
(1)利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件
(2)事件捕获、事件目标、事件冒泡机制理解
(3)当用事件委托的时候,根本就不需要去遍历元素的子节点,只需要给父级元素添加事件就好了,其他的都是在js里面的执行,这样可以大大的减少dom操作,这才是事件委托的精髓所在。
window.event、ev.target、ev.srcElement、target.nodeName(兼容性)

16、JSON
(1)判断字符串是否是json字符串方法:try/catch、JSON.parse()成功、字符串包含{
(2)语法规则:键名必须使用双引号。json的本质是一个字符串
(3)stringify()、toJSON()、parse()

  过滤器和函数参数

  还原函数的注意事项

17、for循环里的ajax问题
(1)设置async:false改为同步
(2)在异步返回的回调函数里递归调用

18、判断数据类型
(1)typeof val === "number" 有问题(因为typeof NaN === "number"),所以需要加上 && isFinite(val)
(2)布尔型、string型、undefined,直接用typeof
(3)对象类型,需要排除null和undefined
(4)null直接判断===即可
(5)数组类型typeof为object,所以不能判断
一种:Object.prototype.toString.apply(arr)==='[object Array]'
二种:排除null和undefined,然后arr.constructor === Array

JS方面重点摘要(一)的更多相关文章

  1. JS方面重点摘要(二)

    1.函数声明与函数表达式 (1)变量声明会置顶提前,但赋值仍在原地方(2)函数声明同变量声明一样会提前:但是,函数表达式没有提前,就相当于平时的变量赋值(3)函数声明会覆盖变量声明,但不会覆盖变量赋值 ...

  2. JS划重点——类和对象的不正经阐述

    JS划重点--类和对象的不正经阐述 /在JS 类里面函数也是一个对象,那么要创建一个对象就需要一个类,这个类可以由这个对牛逼的对象-函数来实现/ /首先是普罗大众都会的 工厂模式来创建一类/ func ...

  3. Java基础进阶:内部类lambda重点摘要,详细讲解成员内部类,局部内部类,匿名内部类,Lambda表达式,Lambda表达式和匿名内部类的区别,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    内部类lambda重点摘要 内部类特点: 内部类可以直接访问外部类,包括私有 外部类访问内部类必须创建对象 创建内部对象格式: 外部类.内部类 对象名=new外部类().new内部类(); 静态内部类 ...

  4. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  5. Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案

    继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...

  6. js学习重点难点知识总结 (巩固闭包、原型、原型链)

    学习重点知识总结   1.闭包知识点巩固        闭包函数:                    1.可以实现函数外部访问函数内部的变量                     2.在Java ...

  7. JS DOM重点核心笔记

    DOM重点核心     文档对象模型,是W3C推荐的处理可扩展的标记语言的标准编程接口     我们主要针对与勇士的操作,主要有创建.增加.删除.修改.查询.属性操作.事件操作   三种动态创建元素的 ...

  8. js一些重点知识总结(二)

    第一部分:数据类型转换 1) 数据类型的种类: 数值型number.布尔型(true(1) /false (0)).字符串型(String).空类型(null)(object) 2) 数据类型自动转换 ...

  9. js一些重点知识总结(一)

    1.javaScript与java的区别?(从它们的解释,运行等方面说)   第一,javascript是基于对象的,而java是面向对象,即java是一种真正的面向对象的语言,即使是开发简单的程序, ...

随机推荐

  1. [bzoj4712] 洪水 [树链剖分+线段树+dp]

    题面 传送门 思路 DP方程 首先,这题如果没有修改操作就是sb题,dp方程如下 $dp[u]=max(v[u],max(dp[v]))$,其中$v$是$u$的儿子 我们令$g[u]=max(dp[v ...

  2. Codeforces Round #306 (Div. 2) 550A Two Substrings

    链接:http://codeforces.com/contest/550/problem/A 这是我第一次玩cf这种比赛,前面做了几场练习,觉得div2的前面几个还是比较水的. 所以看到这道题我果断觉 ...

  3. maven打包源码

    1. 打包 main 目录代码到 jar 归档文件 mvn source:jar 2. 打包 test 目录代码到 jar 归档文件 mvn source:test-jar

  4. malloc()之后,内核发生了什么?【转】

    转自:http://blog.csdn.net/qianlong4526888/article/details/9042835 [-] 1brk系统调用服务例程 2扩大堆 3缺页异常的处理过程 31d ...

  5. 配置Nginx来支持php

    安装php7     下载地址:https://secure.php.net/downloads.php这里下载的是:wget http://ar2.php.net/distributions/php ...

  6. python 向mysql插入数据

    生成随机内容用到的方法: substr是一个字符串函数,从第二个参数1,开始取字符,取到3 + floor(rand() * 75)结束 floor函数代表的是去尾法取整数. rand()函数代表的是 ...

  7. 【Android开发日记】之入门篇(三)——Android目录结构

    本来的话,这一章想要介绍的是Android的系统架构,毕竟有了这些知识的储备,再去看实际的项目时才会更清楚地理解为什么要这样设计,同时在开发中遇到难题,也可以凭借着对Android的了解,尽快找出哪些 ...

  8. hdu 1116(并查集+欧拉路径)

    Play on Words Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  9. hdu 1102(最小生成树)

    Constructing Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  10. Cosmos DB

    类似的数据库还有Google的Spanner. 参考:官网说明 另一个介绍 Key capabilities As a globally distributed database service, A ...