Exercise
Test01
严格检查模式strict
'use strict'; //预防js的随意性导致产生的一些问题,必须放在第一行
let i = 1; //局部变量建议都用let定义
数据类型
数值、文本、图形、音频、视频......
变量:
var 清清 = "wjx";
Number(js不区分小数和整数)
123 //整数
123.1 //浮点数
1.123e3 //科学计数法
-99 //负数
NaN //not a number
Infinity //无限大
布尔值:true,false
逻辑运算:&&,||,!
比较运算符:=,,=(绝对等于,类型和值都一样)。
注:NaN===NaN,这个与所有的数值都不相等,包括自己,只能通过isNaN(NaN)来判断这个数是否是NaN。
浮点数问题:尽量避免使用浮点数进行运算,存在精度问题。
console.log((1/3) === (1-2/3)) //false
console.log(Math.abs(1/3-(1-2/3))) < 0.0000001 //true(使用绝对值判断)
null和undefined:
null:空,undefined:未定义
字符串
js不区分字符和字符串,字符串不可变
1)注意转义字符 \
'\'' //单引号
'\n' //换行
'\t'
'\u4e2d' //\u#### Unicode字符
"\x41" //Ascll字符/
2)多行字符串编写:``
var msg =
`a
b
c`
3)模板字符串
let name = 'jiiucheng';
let age = 3;
let msg = `你好,${name}`
4)字符串长度:str.length
5)大小写转换:(student.toUpperCase()) //这里是方法,不是属性
6)打印下标索引:str.indexOf('c')
7)截取区间为 [ , ) 的字符:substring(2,4) //左闭右开
数组
Array可以包含任意的数据类型
var arr = [1,2,3,4,5,6]; //通过下标取值和赋值,如果越界了,打印undefined
arr[0]
arr[0] = 1
1)长度:arr.length(加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素丢失)
2)indexOf:通过元素获得下标索引(字符串的"1"和数字1不同)
3)slice():截取Array的一部分,返回一个新数组(左闭右开)
4)push(),pop() 尾部:push:压入到尾部
pop:弹出尾部的一个元素
5)unshift(),shift() 头部:unshift:压入到头部
shift:弹出头部的一个元素
6)排序sort()
7)元素反转reverse()
8)concat():拼接,并没有修改数组,只是会返回一个新的数组
9)连接符join:打印拼接数组,使用特定的字符串连接
10)多维数组
arr = [[1,2],[3,4],["5","6"]];
对象
若干个键值对,js中所有的键都是字符串,值是任意对象
js中{...}表示一个对象,键值对描述属性 xxxx: xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!
var 对象名 = {
属性名: 属性值,
属性名: 属性值,
属性名: 属性值,
}
var person = {
name: "huahai",
age : 21,
email: "[email protected]",
score: 100
}
1)对象赋值:person.name = "jiuicheng"
2)使用一个不存在的对象属性,不会报错,只会undefined
3)动态的删减属性:通过delete删除对象的属性
4)动态添加:直接给新的属性添加值即可
5)判断属性值是否在这个对象中:'xxx' in xxx
6)判断一个属性是否是这个对象自身拥有的:hasOwnProperty()
标签:arr,01,基础,js,var,let,字符串,属性 From: https://www.cnblogs.com/RRubp/p/16856066.html