• Javascript类型系统


    强类型与弱类型

    从类型安全的角度出发,编程语言分为强类型和弱类型:

    • 强类型:语言层面限制函数的实参类型必须与形参类型相同
    • 弱类型:语言层面不限制形参的类型

    强类型有更强的类型约束,不允许有任意类型的隐式类型转换;而弱类型中几乎没有什么约束,允许任意的数据隐式类型转换。

    变量类型允许随时改变的特点,不是强弱类型的差异。

    静态类型与动态类型

    从类型检查的角度出发,编程语言分为静态类型和动态类型:

    • 静态类型:一个变量声明时,它的类型就是明确的,并且变量声明后,它的类型就不允许再修改。
    • 动态类型:再运行阶段才能明确变量的类型,并且变量的类型随时可以改变,换句话说,动态类型语言中的变量没有类型,而变量中存放的值是有类型的。

    常见语言分类

     JavaScript类型系统特征

    由于早前的JavaScript应用简单,并且JavaScript是一门脚本语言,没有编译环节,所以JavaScript作为一门弱类型且动态类型的语言,缺失了类型系统的可靠性。

    弱类型的问题

    部分错误需等到运行时才报错,存在隐患

     

     在上面的代码中,定义了一个对象,然后调用对象中不存在的方法,由于弱类型的原因,上面的代码在语法上是可行的,并没有报错,而是等到了运行阶段才报错。

    意料之外的结果

     在上面的代码中,函数sum被设计用来计算两数之和,由于类型的不确定性,在传入错误类型后,代码没有报错,并产生了意料之外的结果。

  • 相关阅读:
    WCF webHttpBinding协议上传接收文件
    mysql 用存储过程和函数分别模拟序列
    angular 下载文件
    Firebird 备份与恢复
    sql 等额本息
    Firebird 手动安装 Legacy_Auth 登陆认证
    Firebird 获取用户表及字段
    Firebird shadow
    Linux的安装(虚拟机环境)与基础配置
    第 3 章 数据库系统 3.5备份与恢复
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14893704.html
Copyright © 2020-2023  润新知