JS中有趣的知识

Posted bigharbour

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中有趣的知识相关的知识,希望对你有一定的参考价值。

1.分号与换行

function fn1()
    return 
        name: ‘javascript‘
    ;


function fn2()
    return 
    
        name: ‘javascript‘
    ;


var obj1 = fn1();
var obj2 = fn2();

console.log(obj1);
console.log(obj2);

  这个例子看上去没有什么不同,但是实质上,确实是不同的。第一个输出结果为一个object ,而第二个输出结果为undefined。为什么?

因为Js中是不需要分号和换行这个东西的,第二个会被解析成:

function fn2()
    return ;
    
        name: ‘javascript‘
    ;

  所以实质上返回的是一个undefined。

 

2.五大类型中,关于null

Js有五大数据类型boolean,string,number,undefined,object。而为什么

typeof null

会被解析为 object 呢?

原因是在计算机底层存储数据时是以二进制格式进行存储的,如果前三位为0的话会被解析为object数据类型。而null的所有位数都为0,当解析null时,前三位先被解析,计算机错认为null为object类型,这属于计算机语言层面的一个bug。

 

3.关于undefined

undefined是Undefined数据类型的实例,虽然它在实际应用过程中并不能用来存储数据,但我们可以对他进行一些操作。

当我们 对Undefined数据类型名进行类型检测时

    var Undefined = 10;
    var String=10;
    console.log(typeof Undefined);
    console.log(typeof String);

显示结果为 :number number。这是因为Undefined并不是关键字和保留字。如果对关键字进行声明,会报错。

 

当我们对他进行数据类型检测时

console.log(typeof undefined)

显示结果为undefined。

 

当我们对其他数据类型进行类型检测时

console.log(typeof Object);
console.log(typeof Number);
console.log(typeof String);
console.log(typeof Boolean);

显示结果却不是数据类型本身的类型,而是function;

但是由于undefined并不是关键字和保留字,所以我们可以重新声明它

    var undefined = 10;
    var string=10;
    console.log(typeof undefined);
    console.log(typeof string);

显示结果为:number  number;可见undefined具有不变值的属性。同时开头字母小写的

   var undefined = 10;
    var string=10;
    var boolean=10;
    var object=10;
    var number=10;

    console.log(typeof undefined);
    console.log(typeof string);
    console.log(typeof object);

    console.log(typeof boolean);
    console.log(typeof number);

显示结果为:undefined number number number number 。可见同名且首字母小写的数据类型实例只有undefined一个,其他的都不是。

 

4.在JavaScript中不存在重载函数

    有一定后端知识的同学都知道在C++和Java中都存在函数重载,

  而JavaScript中却不存在函数重载,如果出现了,后者会把前者覆盖。而且函数声明会提升。

 

以上是关于JS中有趣的知识的主要内容,如果未能解决你的问题,请参考以下文章

前端词典11 个 CSS 知识搭配 11 个 JS 特性 (实用合集)

用python玩推理游戏还能掌握基础知识点,有趣又充实,你不试试吗?

JavaScript有趣的知识点

一个有趣的小知识-church计数

每周一书《码农翻身(好玩有趣的编程知识)》分享!

杂文 | 一些无用但有趣的冷知识