zoukankan      html  css  js  c++  java
  • JavaScript之毒瘤

    0、导言

    JavaScript中有许多难以避免的问题特性。接下来就一一揭示。

    1、全局变量

    在所有JavaScript的糟糕特性中,最为糟糕的就是全局变量的依赖。全局变量使得在同一个程序中运行独立的子程序变得更难。

    2、作用域

    JavaScript是类C的语法,但是却没有提供类C的块级作用域。

    3、自动插入分号

    JavaScript有一个自动修复机制,会试图通过自动插入分号来修正有缺损的程序,但是它有可能掩盖更为严重的错误。

    4、保留字

    有太多的单词在JavaScript中被保留,它们不能用来命名变量或者函数(在大部分执行环境下,部分关键字是可用的)。

    5、Unicode字符

    JavaScript设计之初,Unicode预计只会有65536个字符。实际上,到现在Unicode有多大百万个字符。这也就导致了JavaScript会认为一对字符是两个不同的字符(Unicode把一对字符视为一个单一的字符)

    6、typeof

    不要指望typeof返回的类型。比如null或者是检测对象,另外检测正则可能会返回function或者是object。

    7、parseInt

    parseInt把一个字符串转换为整数,会在遇到非数字时停止解析。另外如果第一个字符是0,还会按照8进制来取值。

    8、运算符(+)

    +运算符可以用于加法运算或者是字符串连接,究竟如何执行会取决于其参数类型。

    9、 浮点数

    二进制浮点数不能正确的处理十进制小数,因此0.1+0.2 不等于0.3。

    10、NaN

    NaN是一个特殊的数量值,它表示不是一个数字。也是唯一一个不等于自身的JavaScript数值。

    11、伪数组

    JavaScript没有真正的数组,就连Array也是通过object来模拟的,如果完全达不到真正的数组的地步。同时typeof运算符也不能辨别数组和对象。

    12、假值

    JavaScript中包含诸多的假值,如: 0, NaN, '', false, null, undefined

    13、hasOwnProperty

    hasOwnProperty方法被用做一个过滤器来避开for..in语句的隐患,但hasOwnProperty是一个普通的方法,所以是可以被重写的。

    14、对象

    JavaScript的对象,永远不会是真的空对象,因为可以从原形链取得成员属性。

  • 相关阅读:
    进程和线程
    关于offer对比
    CVTE面经
    重定向
    奇虎360面试经验
    百纳信息(海豚浏览器)面经
    携程网面经
    百度面经
    位运算
    Cracking the Coding Interview 4.8
  • 原文地址:https://www.cnblogs.com/humin/p/5036374.html
Copyright © 2011-2022 走看看