当前位置: 首页 > Web前端 > JavaScript

JS部分知识点讲解

时间:2023-03-27 17:41:01 JavaScript

js部分知识点合集1.w3c制定的JavaScript标准事件模型:事件捕获->事件处理->事件冒泡2.typeofDate.now()的值为:"number"3.output(typeof(function(){output("HelloWorld!")})());输出是你好世界!未定义4。页面上有个button按钮,id是button1,如何通过nativejs禁用?(IE考虑IE8.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说明:原型上扩展的Enumerable方法会被forin循环出;使用object.defineProperty添加或修改对象的属性;每个对象都有一个原型属性,返回对象类型原型的引用;原型链是JS继承的模型;for循环是有序的,forin循环不一定是有序的。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(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/UnixShell和很快。14、同步方式与异步方式(1)同步方式:后一个任务等待前一个任务结束后才执行,程序的执行顺序与任务的排列顺序一致同步。(2)异步模式:完全不同。每个任务都有一个或多个回调函数(callback)。上一个任务结束后,不执行下一个任务,而是执行回调函数。后一个任务不会等待前一个任务。任务一结束就执行,所以程序的执行顺序和任务的顺序是不一致的,是异步的。JavaScript实现异步编程模式的4种方式,回调函数,事件监听,发布/订阅,Promises对象:(1)回调函数:这是异步编程最基本的方法。优点是简单,易于理解和部署,缺点是不利于代码的阅读和维护,各个部分之间的高耦合(Coupling),流程会很混乱,每个任务都可以只指定一个回调函数。例子:假设有两个函数f1和f2,后者等待前者的执行结果。如果f1是一个很耗时的任务,可以考虑重写f1,把f2写成f1的回调函数。(2)事件监听:任务的执行不依赖于代码的顺序,而是依赖于事件是否发生。优点是更容易理解,可以绑定多个事件,每个事件可以指定多个回调函数,可以“解耦”,有利于模块化。缺点是整个程序会变成事件驱动,运行过程会变得很不清晰。例:给f1绑定一个事件,当f1中发生done事件时,执行f2。(3)发布/订阅:我们假设有一个“信号中心”。当一个任务完成时,一个信号被“发布”到信号中心,其他任务可以“订阅”到信号中心,所以你知道什么时候可以开始执行。这称为“发布/订阅模式”(publish-subscribepattern),也称为“观察者模式”。这种方式本质上类似于“事件监听”,但明显优于后者。因为我们可以通过查看“消息中心”知道存在多少个信号,每个信号有多少订阅者,从而监控程序的运行情况。(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.angularJSangularJS必须开始DOM节点树生成后管理节点,生成后寻找ng-app标签,然后其下属节点全部由ng管理。在ng创建原始dom实例并创建scope实例之前,使用compile更改原始dom。ng-repeat就是最好的例子,它在编译函数阶段改变了原来的dom,生成了多个原始dom节点,然后每17个。Javascript中关于数字的一些知识总结:1.在Javascript中,由于变量内容不同,变量分为基本数据类型变量和引用数据类型变量。基本类型变量使用八个字节的内存来存储基本数据类型(numeric、boolean、null、undefined)的值,而引用类型变量只存储对对象、数组、函数等引用类型的值的引用(也就是内存地址)2.JS中的数字是不分类型的,即没有byte/int/float/double等区别。18.A.getElementById()方法返回指定ID的第一个对象的引用。语法:document.getElementById(id),参数为id值。querySelector()方法返回文档中匹配指定CSS选择器的元素。所以要获取ID为a的DOM元素,需要加上#+idname。即document.querySelector("#a");19、inputverificationhover进进出出,一般不用inputverification。hoverkeypress也不会用作输入验证。Change可以用作输入验证的事件。change(fn)只是一种实现,还有其他实现:原生js的onchange属性,html属性onchange,addEventListener(onchange,fn)都是实现方法,除了jquery中的$(selector).change(fn)),还有bind(change,fn)。