js局部知识点汇合

1.w3c 制订的 javascript 规范事件模型:事件捕捉->事件处理->事件冒泡

2.typeof Date.now() 的值是:"number"

3.output(typeof (function() {output(“Hello World!”)})()); 输入为Hello World! undefined

4.页面有一个按钮button,id为 button1,通过原生的js如何禁用?(IE 思考IE 8.0以上版本):

document.getElementById("button1").disabled = true;
document.getElementById("button1").setAttribute(“disabled”,”true”);

5.区别以下函数:

document.querySelector() 返回与指定的选择器组匹配的元素的后辈的第一个元素;document.querySelectorAll() 返回与指定的选择器组匹配的文档中元素列表.返回的对象是NodeList;document.getElementById() 返回一个Element对象,示意id属性与指定字符串匹配的元素;document.getElementsByClassName() 返回具备所有给定类名的所欲子元素的类数组对象.返回的对象是HTMLCollection;document.getElementsByTagName() 返回具备给定标记名称的元素的HTMLCollection;document.getElementsByName() 返回文档中具备给定名称的元素的Nodelist汇合.

6.在筹备XMLHttpRequest对象时,在send()前须要调用open()办法

7.javascript的形容:

在原型上扩大的可枚举办法,会被for in循环进去;应用object.defineProperty可向对象增加或者批改属性;每个对象都有prototype属性,返回对象类型原型的援用;原型链是JS实现继承的一种模型;For循环是按程序的,for in 循环是不肯定按程序的。

8.下拉菜单中,用户更改表单元素Select中的值时,就会调用onMouseOver()、onFocus()、onChange()、onClick()事件处理程序

9.运算

运算中,+号,数字隐式转换成字符串。其余的运算符号是字符串隐式转换成数字。除了加法的时候数字会转换为字符串进行字符串进行拼接,其余时候字符串和数字都是字符串转换为数字进行运算.

10.运算符

运算符前置和后置的区别:如果该运算符作为后置操作符,则返回它递加之前的值。如果该运算符作为前置操作符,则返回它递加之后的值。例如:temp=2;(temp--);temp先计算再自减所以表达式的值是2。

11.sort(a,b)=>Math.abs(a-3)-Math.abs(b-3)

箭头函数示意:当Math.abs(a-3)>Math.abs(b-3)时,a放在b前面,Math.abs(a-3)<Math.abs(b-3)时,不替换地位,也就是说数组中的每一项减去3的绝对值越大越靠后。这里次要考的是对sort()办法的把握。
sort() 办法用于对数组的元素进行排序,参数决定排序的程序。原数组var array=[-1,1,3,4,6,10];参数(a,b)=>Math.abs(a-3)-Math.abs(b-3):即数值减3的绝对值[4,2,0,1,3,7]作为参数决定排序。依据绝对值减3大小排列[0,1,2,3,4,7],对应的原数组排序后为[3,4,1,6,-1,10]。

12.text()、:contains、:input()、attr(name,value)区别

text()是jQuery中的办法,可是设置或返回被选元素的文本内容。
:contains选择器,选取蕴含指定字符串的元素,字符串也能够是文本。
:input()选择器,选取表单元素。
attr(name,value)属性操作,设置或返回被选元素的属性和属性值。

13.动态语言(强类型语言)和动静语言(弱类型语言)

(1)动态语言(强类型语言)

动态语言是在编译时变量的数据类型即可确定的语言,少数动态类型语言要求在应用变量之前必须申明数据类型。
例如:C++、Java、Delphi、C#等。

(2)动静语言(弱类型语言)

动静语言是在运行时确定数据类型的语言。变量应用之前不须要类型申明,通常变量的类型是被赋值的那个值的类型。
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

14.同步模式与异步模式

(1)同步模式:就是后一个工作期待前一个工作完结,而后再执行,程序的执行程序与工作的排列程序是统一的、同步的。
(2)异步模式:齐全不同,每一个工作有一个或多个回调函数(callback),前一个工作完结后,不是执行后一个工作,而是执行回调 函数,后一个工作则是不等前一个工作完结就执行,所以程序的执行程序与工作的排列程序是不统一的、异步的。JavaScript中实现 异步编程模式的4种办法,回调函数、事件监听、公布/订阅、Promises对象:

    (1)回调函数:这是异步编程最根本的办法,长处是简略、容易了解和部署,毛病是不利于代码的浏览和保护,各个局部之间高度                  耦合 (Coupling),流程会很凌乱,而且每个工作只能指定一个回调函数。              例:假设有两个函数f1和f2,后者期待前者的执行后果,如果f1是一个很耗时的工作,能够思考改写f1,把f2写成f1的回调函              数。    (2)事件监听:工作的执行不取决于代码的程序,而取决于某个事件是否产生。长处是比拟容易了解,能够绑定多个事件,每个事                  件能够指定多个回调函数,而且能够”去耦合”(Decoupling),有利于实现模块化。毛病是整个程序都要变成事件驱动型,运                          行流程会变得很不清晰。              例:为f1绑定一个事件,当f1产生done事件,就执行f2。    (3)公布/订阅:咱们假设,存在一个”信号核心”,某个工作执行实现,就向信号核心”公布”(publish)一个信号,其余工作能够向                  信号核心”订阅”(subscribe)这个信号,从而晓得什么时候本人能够开始执行。这就叫做”公布/订阅模式”(publish-subscribe                   pattern),又称”观察者模式”(observer pattern)。这种办法的性质与”事件监听”相似,然而显著优于后者。因为咱们能够                  通过查看”音讯核心”,理解存在多少信号、每个信号 有多少订阅者,从而监控程序的运行。    (4)Promises对象:是CommonJS工作组提出的一种标准,目标是为异步编程提供对立接口。简略说,它的思维是,每一个异步任                  务返回一个Promise对象,该对象有一个then办法,容许指定回调函数。回调函数变成了链式写法,程序的流程能够看得很清                                楚,而且有一整套的配套办法,能够实现许多弱小的性能。              例:f1的回调函数f2,f1().then(f2);

15.Math.round(x)

如果参数的小数局部大于 0.5,则舍入到下一个绝对值更大的整数;
如果参数的小数局部小于 0.5,则舍入到下一个绝对值更小的整数;
如果参数的小数局部恰好等于0.5,则舍入到下一个在正无穷(+∞)方向上的整数。留神,与很多其余语言中的round()函数不同, Math.round()并不总是舍入到远离0的方向(尤其是在正数的小数局部恰好等于0.5的状况下)

16.angularJS

angularJS必定是在DOM节点树生成后开始治理节点的,生成后寻找ng-app标记,而后其上司所有节点均由ng来治理。应用compile能够扭转原始的dom,在ng创立原始dom实例以及创立scope实例之前. ng-repeat就是一个最好的例子,它就在是compile函数阶段扭转原始的dom生成多个原始dom节点,而后每个又生成element实例.

17.对于Javascript中数字的局部常识总结:

1.Javascript中,因为其变量内容不同,变量被分为根本数据类型变量和援用数据类型变量。根本类型变量用八字节内存,存储根本数据类型(数值、布尔值、null和未定义)的值,援用类型变量则只保留对对象、数组和函数等援用类型的值的援用(即内存地址)

2.JS中的数字是不分类型的,也就是没有byte/int/float/double等的差别。

18.A. getElementById() 办法可返回对领有指定 ID 的第一个对象的援用。

语法:document.getElementById(id)、参数为id值。
querySelector() 办法返回文档中匹配指定 CSS 选择器的一个元素。
所以要获取ID为a的DOM元素,须要加上#+id名。也就是document.querySelector("#a");

19.输出验证

hover移入移出,输出验证个别不会应用。hoverkeypress也不会用作输出验证。change能够用作输出验证的事件,change(fn)只是一种实现形式,还有其余实现形式:原生js的onchange属性,html属性onchange,addEventListener(onchange,fn)都是实现形式,jquery中除了$(selector).change(fn)外还有bind(change,fn)。