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的对象,永远不会是真的空对象,因为可以从原形链取得成员属性。

  • 相关阅读:
    第三篇:一个Spark推荐系统引擎的实现
    第二篇:使用Spark对MovieLens的特征进行提取
    第一篇:使用Spark探索经典数据集MovieLens
    第十一篇:Map/Reduce 工作机制分析
    docker 导入导出镜像
    pycharm激活
    jenkins + sonar 安装配置
    jenkins webhook 配置
    python3 学习
    Kubernetes 详解
  • 原文地址:https://www.cnblogs.com/humin/p/5036374.html
Copyright © 2011-2022 走看看