拓展知识
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的区别
如果参数是 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位数