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

    强类型与弱类型

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

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

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

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

    静态类型与动态类型

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

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

    常见语言分类

     JavaScript类型系统特征

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

    弱类型的问题

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

     

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

    意料之外的结果

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

  • 相关阅读:
    Linux系统自带服务罗列
    几个有用的shell命令
    Zabbix
    RaspberryPi3安装CentOS7教程
    grafana简介
    负载均衡之Haproxy配置详解(及httpd配置)
    CentOS7版本的新特性
    文件系统目录结构
    openstack部署dashboard
    openstack核心组件--cinder存储服务(6)
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14893704.html
Copyright © 2011-2022 走看看