1. 幂运算符**
console.log(2 ** 3); // 8
2. 正值运算符+
可以将非Number
转为Number
,与parseInt
或者parseFloat
不同
console.log(parseFloat('3abc')); // 3
console.log(+'3abc'); // NaN
console.log(parseFloat('.3abc')); // 0.3
console.log(+'.3'); // 0.3
console.log(parseFloat(null)); // NaN
console.log(+null); // 0
console.log(parseFloat(undefined)); // NaN
console.log(+undefined); // NaN
console.log(parseFloat(true)); // NaN
console.log(+true); // 1
console.log(parseFloat(false)); // NaN
console.log(+false); // 0
3. 操作符in
如果所指定的属性确实存在于所指定的对象中,则会返回true
,语法如下:
propNameOrNumber in objectName
下面的例子是 in
操作的常见用法。
// Arrays
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
0 in trees; // returns true
3 in trees; // returns true
6 in trees; // returns false
"bay" in trees; // returns false (you must specify the index number, not the value at that index)
"length" in trees; // returns true (length is an Array property)
// Predefined objects
"PI" in Math; // returns true
var myString = new String("coral");
"length" in myString; // returns true
// Custom objects
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar; // returns true
"model" in mycar; // returns true
4. 拓展语句...
展开对象或数组,可以在扩展数组和函数调用时使用。
// 扩展数组,不需要 concat
var parts = ['shoulder', 'knees'];
var lyrics = ['head', ...parts, 'and', 'toes'];
// 函数调用传参
function func(x, y, z) { }
var args = [0, 1, 2];
func(...args);