JavaScript进阶知识点,最详细易懂!

1.以Var还可以一次声明多个变量,变量之间用","逗号隔开。

2.操作符之间的优先级(高到低):算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号

3. 定义数组var 数组名=new Array(可选写长度);.创建的新数组是空数组,没有值,如输出,则显示undefined。  

虽然创建数组时,指定了长度,但实际上数组都是变长的,也就是说即使指定了长度为8,仍然可以将元素存储在规定长度以外。不会发生溢出现象。

4.var myarray = new Array(66,80,90,77,59);//创建数组同时赋值   var myarray = [66,80,90,77,59];//直接输入一个数组

5.数组名.length; //获得数组myarray的长度  JavaScript数组的length属性是可变的  数组随元素的增加,长度也会改变

6.二维数组的定义方法var Myarr = [  [0 , 1 , 2 ],[1 , 2 , 3]  ]     myarr[行][列]

或var myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一维长度为2 myarr[i]=new Array(); //再声明二维 for(var j=0;j<3;j++){ //二维长度为3 myarr[i][j]=i+j; // 赋值,每个数组元素的值为i+j } }

7.多种选择switch(表达式) { case值1: 执行代码块 1 break; case值2: 执行代码块 2 break; ... case值n: 执行代码块 n break; default:  }   

Switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。

8.在while、for、do...while、while循环中使用break语句退出当前循环,直接执行后面的代码。continue的作用是仅仅跳过本次循环,而整个循环体继续执行。

9.什么时候使用变量什么时候声明var   js ==值相等    ===值与类型均相等   return sum; //返回函数值,return=后面的值叫做返回值。

10.事件响应,让网页交互。事件名="函数名()"   

鼠标单击事件,当在网页上单击鼠标时,就会发生onclick事件,同时执行被调用的程序。

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,

鼠标移开事件,当鼠标移开当前对象时,该对象就触发onmouseout事件,

聚焦事件,当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,

失焦事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,

选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,

文本框内容改变事件,通过改变文本框的内容来触发onchange事件。

加载事件,会在页面加载完成后,立即触发onload事件,写在<body>标签内。

卸载事件,当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件。不同浏览器对onunload事件支持不同。写在<script>里面window.onunload = 事件名;

11.获取元素的值设置和获取方法为:例:赋值:document.getElementById(“id”).value = 1; 取值:var = document.getElementById(“id”).value;

12.parseFloat(string) 函数可解析一个字符串,并返回一个浮点数。

13.内置对象

JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。 使用对象前先定义,用new关键字定义对象  

对象名 . 属性名(中间为点)    对象名.方法名()

14.Date 日期对象   

定义一个时间对象 :var date=new Date(); 初始值为当前日期  若想自定义值,可以var data = new Date(2012, 10, 1);

Date对象中处理时间和日期的常用方法:

15.get/setFullYear() 返回/设置年份,用四位数表示。  getMonth() 方法可返回表示月份的数字。返回值是 0(一月) 到 11(十二月) 之间的一个整数。故+1

返回星期方法getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,通过数组完成,

var mydate=new Date();

var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

document.write("今天是:"+weekday[mydate.getDay()]);

get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。

如果将目前日期对象的时间推迟1小时  对象名.setTime(对象名.getTime() + 60 * 60 * 1000);

document.write("推迟一小时时间:" + mydate);

16.charAt() 方法可返回指定位置的字符。字符串中第一个字符的下标是 0。 

最后一个字符的下标为字符串长度减一(string.length-1)   

如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串

17.indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。      

字符串名称. indexOf(“要要检索的字符串检索的字符串”,从第几个位置开始查找)     

字符串中的字符位置是从 0 开始的。如果要检索的字符串值没有出现,则该方法返回 -1。

18.split() 方法将字符串分割为字符串数组,并返回此数组。

字符串名称.split(separator,limit)   separator必选,从该参数指定的地方分割     

Limit可选参数,返回的子串不会多于这个个数  

如果把空字符串 ("") 用作 separator,那么 stringObject(字符串名称) 中的每个字符之间都会被分割。

substring() 方法用于提取字符串中介于两个指定下标之间的字符。  stringObject.substring(startPos,stopPos)    startPos必选,开始位置   

stopPos可选,结束位置,若无则一直到末尾    返回的内容是有前面 startPos位置的无后面的   

如果参数 start 与 stop 相等,那么该方法返回的就是一个空串    如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数

19.substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。  stringObject.substr(startPos,length)    startPo起始位置包括在内,length可选,返回字符串的长度,若省略则一直到末尾

20.Math对象,提供对数据的数学计算。Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。    Math.属性/方法

21.ceil() 方法可对一个数进行向上取整。Math.ceil(x)   它返回的是大于或等于x,并且与x最接近的整数。  

22.floor() 方法可对一个数进行向下取整。Math.floor(x)返回的是小于或等于x,并且与 x 最接近的整数。

23.round() 方法可把一个数字四舍五入为最接近的整数。Math.round(x)     如果 x 与两侧整数同等接近,则结果接近 +∞方向的数字值 。(如 -5.5 将舍入为 -5; -5.52 将舍入为 -6),

24.random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。Math.random();   获得0 ~ 10之间的随机数,(Math.random())*10

 

25.定义数组的时候,直接初始化数据:var myArray = [2, 8, 6];

26.concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。             数组名 arrayObject .concat(array1,array2,...,arrayN)    括号里面的是要连接的数组

27.join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。arrayObject.join(分隔符)    分隔符可选,若无默认逗号

匹配一个字符串是否存在  若存在则打印出来不存在则输出null  str.match(“Hello”)

替换字符串的内容 第一个是存在的  第二个是要替换后的 str.replace(“Hello”,”jikexueyuan”)

28.reverse() 方法用于颠倒数组中元素的顺序。arrayObject.reverse()

29.slice() 方法可从已有的数组中返回选定的元素。arrayObject.slice(start,end)  返回一个新的数组,包含从 start 到 end (不包括该元素)的子数组。  该方法并不会修改数组

30.sort()方法使数组中的元素按照一定的顺序排列。arrayObject.sort(方法函数名)   字母从小到大    若想数字从小到大则:function sortNum(a,b) { return a - b; //升序,如降序,把“a - b”该成“b - a” }

31.浏览器对象

32.JavaScript 计时器   一次性计时器:仅在指定的延迟时间之后触发一次  间隔性触发计时器:每隔一定的时间间隔就触发一次。

33.每隔指定的时间执行代码  setInterval(代码,交互时间);   代码:要调用的函数或要执行的代码串。交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。

34.取消计时器clearInterval()  clearInterval(返回的延迟名)  例如:var i=setInterval("clock()",100);   <input type="button" value="Stop" οnclick="clearInterval(i)" />

35.计时器setTimeout()  setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。 setTimeout(代码,延迟时间);    

36.取消计时器clearTimeout()  clearTimeout(返回的延迟名)  和上面的相似

37.history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。   window.history.属性/方法     当前窗口的浏览历史总长度window.history.length;     

加载 history 列表中的前一个链接地址URL   window.history.back();  back()相当于go(-1),    加载 history 列表中的下一个链接地址URL  window.history.forward();  forward()相当于go(1)

38.go()方法,根据当前所处的页面,加载 history 列表中的某个具体的页面。    window.history.go(number);

39.location用于获取或设置窗体的URL,并且可以用于解析URL。  location.属性/方法     

如:获取当前显示文档的URL   window.location.href       assign() 方法可加载一个新的文档。location.assign(URL)

40.Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。  navigator.属性

navigator.userAgent返回包括浏览器版本信息等的字符串

41.screen对象用于获取用户的屏幕信息。window.screen.属性   

屏幕分辨率的高和宽screen.height/width   window.screen 对象在编写时可以不使用 window 这个前缀。

42.屏幕可用高和宽度 screen.availWidth/availHeight   span 是一个行内标记,一个内联的对象,前后是不会换行的  div是块元素,会换行

43. DOM对象,控制HTML元素

文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。DOM操作:

44.getElementsByName()方法 通过元素的 name 属性查询元素document.getElementsByName(name) 返回带有指定名称的节点对象的集合。    

注意: 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。   

和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始

45.document.getElementsByTagName(Tagname)  返回带有指定标签名的节点对象的集合。    注意:Tagname是标签的名称,如p、a、img等标签名。和数组类似也有length属性,可以和访问数组一样的方法来访问,所以从0开始。

46.三种获取节点的方法:通过ID/name/标签document.getElementById/getElementsByName/getElementsByName("ID/name/标签");

47.区别三种获取节点的方法:ID 是一个人的身份证号码,是唯一的。所以通过getElementById获取的是指定的一个人。  

Name 是他的名字,可以重复。所以通过getElementsByName获取名字相同的人集合。

TagName可看似某类,getElementsByTagName获取相同类的人集合。如获取小孩这类人,getElementsByTagName("小孩")。   

48.选中复选框document.getElementById("XX").checked = true;   取消选中的复选框false

49.getAttribute()方法通过元素节点的属性名称获取属性的值。    elementNode.getAttribute(name)   

elementNode:使用getElementById()、getElementsByTagName()等方法,获取到的元素节点。    

name:要想查询的元素节点的属性名字

50.setAttribute() 方法增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。 elementNode.setAttribute(name,value)

51.节点属性。在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性(属性用点来调用 . ) :  

 nodeName : 节点的名称     nodeValue :节点的值   nodeType :节点的类型      

元素节点的 nodeValue 是 undefined 或 null  文本节点的 nodeValue 是文本本身  属性节点的 nodeValue 是属性值      

Internet Explorer 会忽略节点之间生成的空白文本节点,而其它浏览器不会。

52.  访问子节点elementNode.childNodes 访问选定元素节点下的所有子节点的列表,返回的值可以看作是一个数组

53.访问子节点的第一和最后项  node.firstChild/lastChild。如果选定的节点没有子节点,则该属性返回 NULL。

54.访问父节点 父节点只能有一个。   elementNode.parentNode   访问祖节点:elementNode.parentNode.parentNode

55.访问兄弟节点     nodeObject.nextSibling/previousSibling   返回某个节点之后/前紧跟的节点

56.插入节点。在指定节点的最后一个子节点列表之后添加一个新的子节点。 appendChild(newnode)   

创建新元素节点:var newnode = document.createElement("li");  

创建新节点内容:Var newtext=document.createTextNode("PHP");   或者newnode.innerHTML="PHP";  

节点:document.getElementById("xx")

语法: 节点.appendChild(newtext/newnode); 

57.insertBefore() 方法可在已有的子节点前插入一个新的子节点。 insertBefore(newnode,node);  newnode: 要插入的新节点。 node: 指定此节点前插入节点。

58.removeChild() 方法从子节点列表中删除某个节点。  节点列表.removeChild(具体某个节点)

59.replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。 

60.获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:

var w=document.documentElement.clientWidth||document.body.clientWidth;

var h=document.documentElement.clientHeight||document.body.clientHeight;

把client换成scroll就是获取网页内容高度和宽度。    

把client换成offse就是获取网页内容高度和宽度(包括滚动条等边线,会随窗口的显示大小改变)。

学习地址

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "JavaScript语言精粹"是一本由Douglas Crockford撰写的著名图书,是许多JavaScript开发者学习与掌握该语言不可或缺的重要资源。 这本书主要关注于JavaScript的核心概念和最佳实践,帮助开发者摆脱一些语言的怪异之处和陷阱,使其能够更加高效地编写可维护和可扩展的代码。 "JavaScript语言精粹"一书将JavaScript的精华提炼为19个章节,每一章节都深入浅出地介绍了一个关键概念,包括函数、对象、数组、代码风格、错误处理等。作者以清晰简洁的语言解释了这些概念的背后原理,并给出了许多实用的代码示例。 这本书不仅适合JavaScript初学者,对于有一定经验的开发者来说也是一本不可多得的参考书。通过阅读它,开发者可以拓宽对JavaScript的理解和认识,提高代码质量和效率。 除了对基础概念的详细介绍外,"JavaScript语言精粹"还包含了一些话题,如闭包、原型链、模块化等,帮助开发者一步提升其JavaScript编程能力。 总之,"JavaScript语言精粹"是一本权威而实用的JavaScript学习资源,对于想要深入理解和掌握该语言的人来说是极为重要的一本书籍。无论你是初学者还是有经验的开发者,这本书都能帮助你写出更优雅、可读性更高的JavaScript代码。 ### 回答2: 《JavaScript语言精粹》是一本由Douglas Crockford撰写的权威指南,它介绍了JavaScript语言中最重要和最有用的部分。该书通过简洁而清晰的语言讲解了JavaScript的核心概念和特性,为开发者提供了深入理解和运用JavaScript的方法和技巧。 这本书以独特的方式展现了JavaScript的精华,将复杂的语法和概念简化成易于理解和运用的形式。Crockford首先介绍了JavaScript中的基本语法和数据类型,然后深入讲解了函数、对象、原型、闭包等重要概念。他通过具体的示例和练习,引导读者掌握JavaScript中的核心概念和编程技巧。 《JavaScript语言精粹》还包含了对常见错误和陷阱的警示,帮助读者避免在编写JavaScript代码时常见的问题。此外,该书还提供了一些最佳实践和编码规范,帮助开发者写出高质量、可维护的JavaScript代码。 与其他JavaScript教程不同,《JavaScript语言精粹》不仅关注如何正确地使用JavaScript,还强调了一些可以帮助开发者避免错误和提高代码质量的技巧和原则。这使得这本书成为了一本适合初学者和有经验的开发者阅读的权威指南。 总之,《JavaScript语言精粹》是一本深入而全面地介绍JavaScript语言的书籍。无论你是初学者还是有经验的开发者,阅读这本书都可以帮助你建立起对JavaScript的深入理解,并提高你的JavaScript编程技巧。 ### 回答3: 《JavaScript语言精粹》是一本由Douglas Crockford所著的程序设计相关书籍,它主要介绍了JavaScript语言的核心概念和重要知识点。这本书在程序设计领域有着很高的声誉,被许多程序员视为JavaScript编程的经典参考书。 该书的目的是帮助读者深入理解JavaScript语言的精华部分,将复杂的语法和特性解释得简单易懂。它详细介绍了JavaScript的基本数据类型、函数、对象、原型链以及闭包等重要概念,并提供了一些实用的编程技巧和最佳实践。读者通过学习这些内容,可以更好地理解JavaScript的设计哲学和编程范式。 《JavaScript语言精粹》的内容不仅限于语法的讲解,还包括了一些关于代码风格、错误处理和性能优化等方面的建议。它强调代码的可读性、可维护性和可扩展性,帮助读者编写出高质量的JavaScript代码。 这本书的另一个亮点是作者Douglas Crockford的独特见解和深入思考。他不仅仅是介绍了JavaScript的特性,还对其设计和演变行了深入的分析和比较。他提出了一些有关编程规范和标准化的建议,为读者在实际开发中避免一些常见的陷阱和错误提供了宝贵的经验。 总之,《JavaScript语言精粹》是一本经典的JavaScript编程参考书籍,适合有一定编程基础的读者阅读。它能够帮助读者深入理解JavaScript的核心概念和设计原理,提高编程技巧,写出高质量的代码。无论是初学者还是有经验的开发者,都会从这本书中获益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值