js数字:(里面总结了很多重要知识点)
在数字运算中,js会尝试将字符串转换为数字。(如果字符串中是数字,并进行 - % * 运算,如果是 + ,则依旧拼接)
例如:
var x = "100";
var y = "10";
var z = x / y; // z 将是 10
var z = x * y; // z 将是 1000
var z = x - y; // z 将是 90
以下例不会如上例般运行:
var z = x + y; // z 不会是 110(而是 10010)-JavaScript 用 + 运算符对字符串进行了级联。
NaN:
概念:js中的保留字,说明这个值不是一个数 (Not a Number)
方法:js中可以通过 isNaN(str) 判断是否是一个数,true-不是一个数、false-是一个数
(F12控制台也可以进行验证)
NaN和数字做运算,结果是NaN
NaN和字符串做级联运算,结果是拼接
类型是number: typeof(NaN)=number
Infinity:
js中计算数的时候,超出最大可能数的范围返回Infinity
除以0 也会返回
类型number typeof(Infinity)=number
进制:
js中,默认显示10进制。
0x 前缀的常量会被识别为16进制。
0 开头-导零制会被一些js版本识别为八进制。
使用str.toString(16/8/2) 可以将变量输出为对应的16、8、2进制
js数值方法:
toString(); <=> (num).toString(); 将数值以字符串类型返回:
例:var x = 123;
x.toString(); // 从变量 x 返回 123
(123).toString(); // 从文本 123 返回 123
(100 + 23).toString(); // 从表达式 100 + 23 返回 123
toFixed(n) 返回字符串值,参数为指定小数有几位,四舍五入
var x = 9.656;
x.toFixed(2); //9.66
x.toFixed(3); //9.656
toPrecision(n) 返回字符串值,参数为字符串长度
x.toPrecision(); // 返回 9.656
x.toPrecision(2); // 返回 9.7
valueOf(); 返回数值类型。 用法和toString类型相同
以下三种方法可以将变量转换为数值类型:三种方法无法转换数值则都返回NaN,
Number(num); //将参数转换为数字,true返回1,false返回0
parseInt(); //解析参数返回整数
例:parseInt("10"); // 返回 10
parseInt("10.33"); // 返回 10
parseInt("10 20 30"); // 返回 10
parseInt("10 years"); // 返回 10
parseInt("years 10"); // 返回 NaN
parseFloat(); //解析参数返回浮点数
js数组:
数组也可跨多行声明。最后一个元素不加逗号,避免浏览器兼容问题。
数组既可以用文本声明,也可以用new的方式,但是文本方式最简单,出于简洁、可读性和执行速度,直接声明最好
例:var cars = ["Saab", "Volvo", "BMW"]; //js中数组直接声明,也叫文本声明
var cars = [ //也可跨行声明
"Saab",
"Volvo",
"BMW"
];
var cars = new Array("Saab", "Volvo", "BMW"); //new的方式声明,避免使用。
js数组的类型是对象类型: typeof返回的是Object
对象声明:
var person={name:"wang",age:22,sex:"男"}
对象如何访问成员: person.name(推荐使用) 或 person["name"]
数组元素除了普通变量外,也可以是对象、函数、数组。
判断某个变量是数组还是函数,Array.isArray(fruit) //返回布尔类型。true,是数组
???? 都是和数组相关的方法,两天的笔记就放一块 ????
9-15:
js数组方法:
数组转换字符串:
arr.toString() 将数组转换为逗号分隔的字符串。
arr.join("分隔符") 作用同toString 一样, 自己规定分隔符。
添加/删除元素
arr.pop(); 删数组中最后一个元素,并返回此元素。
arr.push("新元素"); 末尾添加新元素,并返回新数组长度。
arr.shift(); 删数组首位元素,并返回此元素。
arr.unshift("新元素"); 首位添加新元素,并返回新数组长度。
更改数组元素:
下标更改:arr[0]="新元素";
长度更改:arr[arr.length]="新元素";
删除元素:
delete arr[下标] 也可以直接删除,删后,元素为未定义的,undefined。所以不太建议使用。
拼接数组
splice(添加起始下标位置,删除元素长度,"新元素1","新元素2")
例: var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");
结果: 原数组:
Banana,Orange,Apple,Mango
新数组:
Banana,Orange,Lemon,Kiwi
已删除项:
Apple,Mango
使用splice(下标位置,删除长度)直接删除数组首位。
合并(连接)数组
arr1.concat(arr2,arr3); //将arr1,arr2,arr3连接到一块,返回的是一个新的数组,不会改变原有数组。
arr1.concat(["a","b","c"]); //也可以直接将数组写入
截取数组
arr.slice(3); //从当前下标截取,到末位并返回。是新的数组,不改变原有数组。
arr.slice(2,7); //从下标2 开始到7 结束,切出一段数组。
js数组排序:
arr.sort(); //对数组进行字母排序。注:不适用数字排序,25在100后,以为2>1
arr.reverse(); //反转数组中的元素
使用比值函数进行排序:
arr.sort(function(a,b){return a-b}); //改为b-a,即为降序排序
js中直接获取数组中最大值:
Math.max.apply(null,arr); //返回最大值,可以将此函数return
获取数组中最小值:
Math.min.apply(null,arr); //返回最小值