重学JS

重学JS(三)— 运算符

2020-02-19  本文已影响0人  尹东方

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);
上一篇 下一篇

猜你喜欢

热点阅读