基本语法
注意!== ==两个符号,建议使用而不应该使用java中的双=和!= 判断是否是NaN只能使用isNaN()函数来判断
数值,文本,图形,音频,视频。。。
和java规范类似,不能使用数字开头 可以使用下划线、$,可以用中文但是不建议
数字number:JavaScript不区分小数和整数,都是number类 var a= NaN;//Not a Number 不是数也是数 alert(a===a);//即使是自己也不等于自己 a=1; a=99.99; a=1.22e23; a=-Infinity;//Infiniti 无穷 alert(typeof a);//以上输出都是number 1/3===1-2/3//为false 因为存在精度问题 故应该避免浮点数计算 //Math.abs(1/3-(1-2/3))<0.000001可以相减小于一个极小量来代替 字符串string:不论是单个字符还是一串字符,在JavaScript中都是string(转义字符等规则和java一样) var s='a';//单个字符 s="abc"//字符串 alert(typeof s);//输出都是string 布尔值boolean:有且只有两个值 true false var b=true; b=false; alert(typeof b); null 和 undefined null:空undefined:未定义 //和NaN不同 null和undefined和自身相等 alert(null===null) alert(undefined===undefined) 数组 java中数组中必须是相同的类型对象,JavaScript中不需要 JavaScript中,访问越界下标时,不会报错而是返回一个undefined //两句都可,尽量使用上面的句式, var arr=[1,2,3,4,"hello",null,NaN] new Array(1,2,3,4,"hello",null,NaN) alert(arr[7]);//越界,返回undefined arr[8]=0;//会把数组长度扩充为9 alert(arr) 对象 对象为大括号定义 var person= { name:"hyx", age:18, tags:[1,2,3,4], } alert(person.name);//取得对象的值1.正常字符串 用’ ’ 或者“ ”包裹 2.注意转义字符 \
\' // 一个字符串 \n // 换行 \t // tab \u4e2d //unicode编码 \u#### \x41 //AscII编码3.多行字符串编写
//tab 上面的引号 var msg=` hello e we `4.模板字符串
//tab 上面的引号 let name="qinjiang"; let age=3; let msg=`你好呀, ${name}`5.字符串的长度
console.log(str.length)6.字符串的常用特性
方法名说明s.length字符串长度s.toUpperCase()全部字母转换为大写s.toLowerCase()全部字母转换为小写s.indexOf()返回所在下标s.substring()截取字符串,包括第一个下标,不包括第二个下标;可以只传一个参数,截取从所传下标开始直到结束的字符串s.replace()两个参数,第一个参数为要被替换的字串,第二个为替换的内容,返回值为替换结果,注意:不会改变原字符串Array可以包含任意的数据类型(甚至同一个数组中可以包含多个类型)
方法/属性名说明a.length数值的属性,返回数组长度a.indexOf(123)返回数组中对应元素的下标,若不存在则返回-1 逻辑为===a.slice()类似字符串中的substring,截取包左不包右,只一个参数则从对应下标开始截取a.push()向数组中压入元素,可以多个参数,按照顺序压在数组最后a.pop()弹出元素,返回并删除最后一个元素a.shift();向数组中加入元素,可以多个参数,按照顺序加在最前a.unshift()删除并返回数组第一个元素a.sort()数组排序a.reverse()翻转数组中元素a.concat(1,2,3)拼接数组,新数组返回值,不改变原数组join("-")更改打印数组时对应的分隔符a.fill(1)把数组中所有元素都用填充为参数 var a= [1,2,3,4,5,"hyx","tzt","123"]; a.length;//数值的属性,返回数组长度 a[7];//用下标取数组元素,可以越界,返回undefined a[8]=999;//下标赋值,会把数组扩展,length改变,若赋值后扩展了不只 //一个元素,则中间的空元素全部为undefined a.indexOf(123);//返回数组中对应元素的下标,若不存在则返回-1 逻辑为=== a.slice();//类似字符串中的substring,截取包左不包右,只一个参数则从对应下标开始截取 a.push();//向数组中压如元素,可以多个参数,按照顺序压如最后 a.pop();//弹出元素,返回并删除最后一个元素 //类似push和pop方法,区别只在对数组头部做操作 a.shift(); a.unshift(); a.sort();//数组排序 a.reverse();//翻转数组中元素 a.concat(1,2,3);//拼接数组,新数组返回值,不改变原数组 a.join("-");//更改打印数组时对应的分隔符 a.fill(1);//把数组中所有元素都用填充为参数若干个键值对
var 对象名={ 属性名:属性值; 属性名:属性值; 属性名:属性值; } //定义了一个person对象,它有4个属性 var person={ name:"kuang", age:3, email:"2565687561@qq.com", score:0 }js中对象,{……}表示一个对象,键值对描述属性xxxx:xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!!!
对象赋值 person.age=99; person['name'] 访问一个不存在的属性,不会报错,会返回undefined,若给它复制,会创建一个属性 person.class;//undefined person.class=5;//添加新属性class 动态删减属性 delete delete person.class;//删除person的class属性 判断属性是否存在于这个对象中 in(父类中继承的也会包含) 'class' in person;//返回false 判断一个属性是否为这个对象自身拥有 hasOwnProperty() person.hasOwnProperty('class');通过for of 和for in 实现遍历
遍历数组 for(var x in arr){ //打印下标 console.log(x) } for(var x of arr){ //打印元素 console.log(x) } 遍历Map(只能用这个方法遍历) var map=new Map([['tom',100],['jack',99],['wang',77]]); for (let x of map){ console.log(x); } 遍历Set var set=new Set([5,6,7]); for (let x of set){ console.log(x) }