拓展知识

1.逗号运算符

var num = (1,2); //num = 2,括号必须存在

var f = (function a() {}, function b() {}); //选取的是逗号运算符后面的值

2.

function test() {

}(1,2,3,4)  //此函数这里不会报错,会认为()只是把里面的数括起来

3.null 与 undefined 的区别

undefined > 0  undefined < 0  undefined == 0 

null > 0  null < 0  null == 0  以上结果都为false

但是  null == undefined

4.在if中返回都为false的6种情况

false  undefined  NaN  null  0  ""(空字符串)

5.document.write() 的调用

document.write(123);  ->  document.write(123.toSting());  //内部会隐式的调用toString()方法

6.函数调用

test();函数调用    <=>  test.call();

7.绝大多数对象都有原型

例外:Object.create(null)  没有原型不能调用toString()方法

Object.create()  里面可填参数只有null 和 原型(对象)

8.isNaN()

function myIsNaN(num) {

  var ret = Number(num);

  ret += "";

  if(ret == "NaN") {

    return true;

  } else {

    return false;

  }

}

9.arguments.callee 

主要用于匿名函数的递归调用 

function test() {

  console.log(arguments.callee == test);  //true

}

test();

//计算5的阶乘
let num = (function (n) {
if(n == 1) {
return 1;
}
return n * arguments.callee(n - 1);
}(5));
console.log(num); //120

fun.caller

function a() {

  b();

}

a();

function b() {

  console.log(b.caller);  //判断b函数在哪个函数里执行的

}

10. -- a 与 ++ a的区别

var a = 1;
var b = a ++ + ++ a;  //会先计算++a,然后再算前面的a
console.log(b);  //4
 
 
11.逻辑运算符
 
&&  var a = 1 && 2;  //2  第一个布尔值为真第二个数  常用于短路语句
    var a = 0 && 1;  //0  第一个布尔值为假取第一个数
 
||     var a = 1 || 2;  //2  第一个布尔值为真取第一个数  常用于兼容
    var a = 0 || 1;  //0  第一个布尔值为假取第二个数
 
 
12.显示类型转换
 
1.Number()   
Number() 函数把对象的值转换为数字。  Number(undefined)  Number(NaN)  都返回NaN
 

如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。

如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

2.parseInt()

第一种用法:parseInt() 函数可解析一个字符串,并返回一个整数。

第二种用法:parseInt(string, radix)  以radix为目标进制string为目标进制数转换为十进制的数

string 必需。要被解析的字符串。
radix

可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

3.parseFloat()

parseFloat() 函数可解析一个字符串,并返回一个浮点数。

该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达第一个小数点后数字的末端为止且前面没有其他字符,然后以数字返回该数字,而不是作为字符串。

4.String()  

String() 函数把传入的参数转换成字符串

5.Boolean()

Boolean()函数把传入的参数转换成 true / false

undefined  false  NaN  null  0  ""(空串)  这六个Boolean值都为false

6.toString()

第一种用法:变量打点调用toString()方法,demo.toString()转换成字符串

第二种用法:toString(radix)  demo.toString(radix)  把demo这个数以radix为目标进制转换成十进制

var demo = 10000;//2进制  parseInt(demo, 2).toString(16)

13.toFixed()

 toFixed(radix)  demo.toFixed(radix)  把demo(浮点类型)这个数去小数点后面radix位数

原文地址:https://www.cnblogs.com/showcase/p/10499859.html