js⽤递归遍历多维数组_三分钟带你了解js基础语法
JS 基础语法(重点总结)
变量
变量即⼀个带名字的⽤来存储数据的内存空间,数据可以存储到变量中,也可以从变量中取出数
变量的声明以及注意点:
JavaScript 是⼀种弱类型语⾔,在声明变量时不需要指明数据类型,直接⽤ var 修饰符进⾏注意:
1)若只声明⽽没有赋值,则该变量的值为undefined
2)变量要有定义才能使⽤,若变量未声明就使⽤,JavaScript 会报错,告诉你变量未定义
3)可以在同⼀条 var 命令中声明多个变量
4)若使⽤ var 重新声明⼀个已经存在的变量,是⽆效的
5)若使⽤ var 重新声明⼀个已经存在的变量且赋值,则会覆盖掉前⾯的值
6)JavaScript 是⼀种动态类型、弱类型语⾔,也就是说,变量的类型没有限制,可以赋予各种类型的值
2.数据类型
虽说 JS 是弱类型语⾔,变量没有类型,但数据本⾝是有类型的。针对不同的类型,我们可以进⾏不同的操作。JavaScript 中有 6 种数据类型,其中有五种简单的数据类型:Undefined、Null、布尔、数值,字符串,Object.
Undefined: 表⽰“未定义”或不存在,即此处⽬前没有任何值
Null: 表⽰空缺,即此处应该有⼀个值,但⽬前为空
对象(object) : 各种值组成的集合
1)、对象(object){name:”zhangsan”,age:”18”}
2)、数组(array)[1,2,3]
3)、函数(function)function test() {}
Undefined:
undefined 类型的值是 undefined。
undefined 是⼀个表⽰"⽆"的原始值,表⽰值不存在。
出现 undefined 的常见情况:
1)当声明了⼀个变量⽽没有初始化时,这个变量的值就是 undefined
2)调⽤函数时,该函数有形参,但未提供实参,则该参数为 undefined。
3)函数没有返回值时,默认返回 undefined。
null
null 类型是只有⼀个值的数据类型,即特殊的值 null。它表⽰空值,即该处的值现在为空,它表⽰⼀个空对象引⽤。
使⽤ Null 类型值时注意以下⼏点:
1)使⽤ typeof 操作符测试 null 返回 object 字符串。
2)undefined 派⽣⾃ null,所以等值⽐较返回值是 true。所以,未初始化的变量 和赋值为null 的变量相等。
alert(undefined == null);
var box = null;//赋值为 null 的变量
var a;//未初始化的变量
alert(a == box);//两个的值相等
可以把undefined看作是空的变量,⽽null看作是空指针对象。
布尔类型
布尔类型有两个值:true、false。常⽤来做判断和循环的条件
数值型
数值型包含两种数值:整型和浮点型。
1)所有数字(整型和浮点型)都是以 64 位浮点数形式储存。所以,JS 中 1 与 1.0 相等,⽽且 1 加上 1.0 得到的还是⼀个整数。浮点数最⾼精度是 17 位⼩数,由 于浮点数运算时可能不精确,尽量不要使⽤浮点数做判断。
2)在存储数值型数据时⾃动将可以转换为整型的浮点数值转为整型。
3)对于过⼤或过⼩的数值,可以使⽤科学计数法来表⽰
4)Infinity、-Infinity
超过了表数范围,出现 Infinity(正⽆穷)或者-Infinity(负⽆穷)
isFinite()函数可以确定是否超出范围:
true:没有超出;false:超出了。
NaN
表⽰⾮数值(Not a Number),是⼀个特殊的值。
如:将字符串解析成数字出错的场合。
console.log(parseInt("abc"));//parseInt ⽅法将字符串解析为数值,但若⽆法解
析,返回 NaN
注意:
NaN 不等于任何值,包括它本⾝,因为它不是⼀个值
NaN 与任何数(包括它⾃⼰)的运算,得到的都是 NaN。
console.log("NaN 不等于任何值,包括它本⾝:" + (NaN === NaN));//false
console.log("NaN 与任何值运算都是:" + (NaN + 1));
isNaN()可以⽤来判断⼀个值是否为 NaN
true:不是数字;false:是数字
console.log(isNaN(12));//false
console.log(isNaN(("abc" + 1)));//true
字符串
" "引起来,如:'sxt',"good"。
使⽤ ' '
' ' 或 " "
使⽤加号’+’进⾏字符串的拼接,如:console.log('hello' + ' everybody');
1)转义符:记住常⽤即可。
0 代表没有内容的字符(u0000)
js获取json的key和valuen 换⾏符(u000A)
t 制表符(u0009)
' 单引号(u0027)
" 双引号(u0022)
对象
对象是⼀组数据和功能的集合。
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
说明:
{}:表⽰使⽤对象字⾯量⽅式定义的对象。空的⼤括号表⽰定义包含默认属性和 ⽅法的对象
操作符 typeof:
typeof 操作符是⽤来检测数据类型。
说明:
1、typeof null 返回的是 object 字符串
2、函数不是数据类型,但是也可以使⽤ typeof 操作符返回字符串。typeof 操作 符可以操作变量也可以操作字⾯量。
注意:
函数在 JavaScript 中是对象,不是数据类型,所以使⽤ typeof 区分 function 和 object是有必要的.
3.类型转换
很多时候,我们在进⾏数据运算或输出等操作时需要将数据在不同类型之间进⾏转 换,在JS 数据类型转⽅法主要有三种:利⽤ js 变量弱类型⾃动转换、转换函数、 强制类型转换.
⾃动类型转换
undefined ⾃动转换成字符串是”undefined”,转成数字是NaN,转成布尔值是false
null ⾃动转换成字符串是”null”, 转成数字是0, 转成布尔值是false
“”(空字符串)⾃动转换成字符串是””, 转成数字是0, 转成布尔值是false
函数转换(String to Number)
JS 提供了 parseInt()和 parseFloat()两个全局转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对 String 类型调⽤这些⽅法,这两个函数才能正确运⾏;对其他类型返回的都是 NaN(Not a Number)。
1.parseInt()在转换之前,⾸先会分析该字符串,判断位置为 0 处的字符,判断它是否是个有效数字,如果不是,则直接返回 NaN,不再继续,如果是则继续,直到到⾮字符
2.parseFloat()⽅法与 parseInt()⽅法的处理⽅式相似,从位置 0 开始查看每个字符,直到到第⼀个⾮有效的字符为⽌,然后把该字 符之前的字符串转换成数字。不过,对于这个⽅法来说,第⼀个出现的⼩数点是有效字符。如果有两个⼩数点,第⼆个⼩数点将被看作⽆效的,parseFloat()⽅法会把这个⼩数点之前的字符串转换成数字。
显⽰转换
toString()函数将内容转换为字符串形式,其中 Number提供的toString()函数可以将数字以指定的进制转换为字符串,默认为⼗进制。xx.toString(进制数)
Number 还提供了 toFixed()函数将根据⼩数点后指定位数将数字转为字符串,四舍五⼊
强制转换
JS 为 Number、Boolean、String 对象提供了构造⽅法,⽤于强制转换其他类型的数据。此时操作的是整个数据,⽽不是部分
console.log(Number(new Object()));
console.log(Number(new Array()));// 结果是0,代表⼀个空数组,也是空对象
4.运算符
% 求余数 x=y%2 x=1
%= 例: x%=y -------> x= x%y
== 等于
=== 全等(值和类型) x===5 为 true;x==="5" 为 false
! not
三⽬运算符 ?: 如果…否则… 例:3>5?3:5
typeof 操作符对数组(array)和对象(object)的显⽰结果都是 object,那么可以 利⽤instanceof 运算符,它可⽤于判断⼀个变量是否某个对象的实例
数组
数组(array)是按次序排列的⼀组数据,每个值的位置都有编号(从 0 开始),整个数组⽤⽅括号表⽰。Js 中定义数组的三种⽅式如下(也可先声明再赋值):
var arr=[值 1,值 2,值 3]; //隐式创建
var arr=new Array(值 1,值 2,值 3); //直接实例化
var array=new Array(size); //创建数组并指定
以上会⼀种即可.
数组的长度可以通过 length 属性来获取,并可以任意更改数组名.length数组名.length = 新长度.
数组中的每⼀个元素都可以被访问和修改,甚⾄是不存在的元素,⽆所谓
数组名[下标]数组名[下标] = 新值
数组的遍历
数组的遍历即依次访问数组的每⼀个元素 ,JS 提供三种遍历数组的⽅式:
普通 for 循环遍历 不遍历属性
for(var i=0; i<=数组.length-1; i++){
}
如:
for(var idx=0;idx<arr.length;idx++){
console.log(arr[idx]);
}
for…in 不遍历索引中的 undefined
for(var 下标(名称任意) in 数组名){
数组名[下标]是获取元素
} //下标(名称任意)
如:
for(var idx in arr){
console.log(arr[idx]);
}
forEach 不遍历属性和索引中的 undefined
数组名.forEach(function(element,index){
}) // element(名称任意):元素,index(名称任意):下标
如:
arr.forEach(function(elem,idx){
console.log(idx+"-->"+elem);
});
数组提供的操作⽅法
Array 对象为我们提供了⼀些⽅法,可以很⽅便地操作数组:
push 添加元素到最后
join 数组转成字符串
var str = arr2.join("*");⽤括号内的内容进⾏字符串连接
indexOf 数组元素索引
6函数
函数,即⽅法。就是⼀段预先设置的功能代码块,可以反复调⽤,根据输⼊参数的不同,返回不同的值。函数也是对象
函数的声明
直接声明:
function 函数名([参数列表]){}
例如:
function foo(){
console.log(1);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论