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)。