zoukankan      html  css  js  c++  java
  • Javascript类型系统

    强类型与弱类型

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

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

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

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

    静态类型与动态类型

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

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

    常见语言分类

     JavaScript类型系统特征

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

    弱类型的问题

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

     

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

    意料之外的结果

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

  • 相关阅读:
    Windows下 maven3.0.4的安装步骤+maven配置本地仓库
    eclipse+webservice开发实例
    android:layout_gravity和android:gravity属性的差别
    再议指针---------函数回调(qsort函数原理)
    Windows下curl使用
    jquery.validate+jquery.form提交的三种方式
    java final keyword
    URAL 1577. E-mail(简单二维dp)
    【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用
    Code:log4
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14893704.html
Copyright © 2011-2022 走看看