JavaScript权威指南-学习笔记JavaScript是一种先进的、动态的、解释型的编程语言,非常适合面向对象和函数式编程风格。JavaScript变量是无类型的。除了表面语法外,JavaScript和Java大致相似。它是一种与Java完全不同的编程语言。HelloWorldNode:交互模式输出HelloWorldnodeconsole.log("HelloWorld")Node:非交互环境输出HelloWorld1。新建hello.js文件2.文件写入:console.log("HelloWorld")3.使用Node执行hello.js文件浏览器JavaScript控制台输出1.新建一个hello.js文件,写入:console.log("HelloWorld")2.新建一个hello.html,写入:3.在浏览器中打开hello.html:file:///F:/javascript/%E7%BB%83%E4%B9%A0DEMO/hello.htmlF12打开开发者工具窗口,你可以在控制台上看到输出。声明-关键字const:declareconstant(不可修改,重新赋值会抛出TypeError)let:declarevariable(在同一个作用域内重新声明同一个变量会导致语法错误)推荐使用这种方式来声明变量var:declarevariable(用var声明的变量作用域是包含函数,不是包含块,可能会导致隐式错误,推荐使用let)funtion:定义函数class:定义类对象创建对象直接create对象letempty={};//没有属性的对象letpoint={x:0,y:0};//包含两个属性的对象使用new创建对象leta=newObject();//创建一个空对象,与{}相同letb=newArray();//创建一个空数组,与[]相同letc=newDate();//创建一个表示当前时间的日期对象letd=newMap();//创建一个map对象,用于存储键值对使用Object.create()创建对象Object.create()用于创建一个新对象,使用它的第一个参数作为新对象的原型:leta=object.create({x:1,y:2});//a继承属性x和ya.x+a.y//=>3读取对象属性要获取对象的值,可以使用(.)或([])运算符letpoint={x:0,y:0};//一个包含两个属性的对象leta=point.x//获取点的x属性值letb=point["y"]//获取点的y属性值writeEnterobjectproperties要创建或设置属性,您可以像查询属性一样使用(.)或([]),只需将它们放在赋值表达式的左侧letpoint={x:0,y:0};//一个包含两个属性的对象point.a=0;点[“b”]=0;删除对象属性delete运算符用于从对象中删除属性delete不对属性的值进行操作,而是对属性本身进行操作delete运算符仅删除其自身的属性,不删除继承的属性。检查对象属性inleto={x:1};"x"ino//=>true:o有自己的属性"x""y"ino//=>ffalse:ohasnoproperty"y""toString"ino//=>true:o继承了toStringhasOwnProperty()的属性。对象hasOwnProperty()方法用于测试对象是否具有给定名称的属性,对于继承的属性returnfalseleto={x:1};o.hasOwnProperty("x");//=>true:o有自己的属性"x"o.hasOwnProperty("y")//=>false:o没有属性"y"o.hasOwnProperty("toString")//=>false:toString是aninheritedpropertyobject.assign():将属性数组从一个对象复制到另一个对象直接创建一个数组createletempty=[];//无元素数组letprimes=[1,2,3,4,5];//包含5个数字元素的数组letmisc=[1.1,true,"a",];//3种不同类型的元素,最后还有逗号Array()创建数组不传参调用leta=newArray();//创建一个空数组创建一个数组,并指定长度leta=newArray(10);//创建一个指定长度的数组创建两个或多个数组元素,或者传入一个非数字元素leta=newArray(5,4,3,2,1,"testing,testing");//创建一个指定长度的数组Array.of()创建一个包含元素的数组Array.of()//=>[];返回一个没有参数的空数组Array.of(10)//=>[10];创建一个只有一个数字元素的数组.of(1,2,3)//=>[1,2,3];Array.from()从字符串创建一个数组varmyArr=Array.from("RUNOOB");//=>['R','U','N','O','O','B']读写数组使用[]运算符访问数组元素leta=["world"];//首先创建一个包含一个元素的数组letvalue=a[0];//读取元素0a[1]=3.14;//写超出index的元素1会返回undefined,增删数组元素不会报错arrayaddelementleta=[];//创建一个空数组a[0]="zero";//添加一个元素a.push("one");//在最后添加一个值flat()和flatMap()来展平数组flat()展平一层嵌套[1,[2,3]].flat()//=>[1,2,3][1,[2,[3]]].flat()//=>[1,2,[3]]flat()传参压平多层嵌套leta=[1,[2,[3,4]]];a.flat(1)//=>[1,2,[3,4]]a.flat(2)//=>[1,2,3,4]转换数组到字符串join()leta=[1,2,3];a.join()//=>"1,2,3"a.join("")//=>"123"a.join("")//=>"123"让b=new阵列(10);//长度为10但没有元素的数组b.join("-")//=>"--------":包含9个连字符的字符串toString()[1,2,3].toString()//=>"1,2,3"["a","b","c"].toString()//=>"a,b,c"[1,[2,"c"].toString()//=>"1,2,c"if如果想保存数组的文本内容以备后用,可以使用JSON.stringify()对数组进行迭代1.Arrayloopvaroffers=[s{我d:20,name:'Captain'},{id:24,name:'General'},{id:56,name:'Admiral'},{id:88,name:'Commander'}];2、for循环使用率最高,也是最基本的遍历方式varofficersIds=[];for(vari=0,len=officers.length;i
