美文网首页程序员
强类型与弱类型

强类型与弱类型

作者: 翔子丶 | 来源:发表于2021-01-11 15:45 被阅读0次
强类型与弱类型(类型安全角度)

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

弱类型:不会限制实参必须与形参类型相同

function sum (a, b) {
  return a + b
}

console.log(sum(100, 100)) // 200
console.log(sum(100, '100')) // 100100

强类型不允许任意形式的类型转换,而弱类型语言则允许任意的数据隐式类型转换

静态类型与动态类型(类型检查角度)

静态类型:变量声明时它的类型就是明确的,声明过后就不能在修改

动态类型:只有在运行阶段才能明确变量类型,变量类型可以随时更改

弱类型的问题

JavaScript是弱类型且动态类型,所以没有任何类型限制,但缺失了类型系统的可靠性

  1. 必须等到运行阶段才能发现异常

    const obj = {}
    
    // obj.foo()
    
  2. 函数功能可能发生改变

    function sum (a, b) {
      return a + b
    }
    
    console.log(sum(100, 100))
    console.log(sum(100, '100'))
    
  3. 对象索引器的错误用法

    const obj = {}
    obj[true] = 100 // 属性名会自动转换为字符串
    console.log(obj['true'])
    
强类型的优势
  1. 错误更早暴露
  2. 代码更智能,编码更准确
  3. 重构更牢靠
  4. 减少代码层面不必要的类型判断

相关文章

  • TypeScript

    强类型与弱类型 类型安全纬度:强类型与弱类型强类型:语言层面限制函数的形参类型和实参类型必须相同。弱类型:语言层面...

  • TypeScript疑难解析

    1. 语言类型 1.1 强类型与弱类型 强类型不允许随意的隐式类型转换,而弱类型是允许的强类型和弱类型区别是是否允...

  • JavaScript语言类型相关

    从类型安全角度来比较,可以分为以下: 强类型与弱类型 强类型:语言层面限制函数的实参类型必须与形参类型相同弱类型:...

  • 强类型与弱类型

    强类型与弱类型(类型安全角度) 强类型:语言层面限制函数的实参类型必须和形参类型相同 弱类型:不会限制实参必须与形...

  • 强类型 & 弱类型 静态类型 & 动态类型

    强类型 & 弱类型 (针对类型转换是否)静态类型 & 动态类型 (针对类型检查时机) 强类型 & 弱类型 强类型:...

  • 类型安全 & 类型检查

    类型安全 强类型 弱类型 类型检查 静态类型 动态类型 强类型 VS 弱类型 强类型不允许随意的隐式类型转换,而弱...

  • Typescript - 基础(一)

    1、强类型与弱类型 强类型语言:不允许改变变量的类型,除非进行强制类型转换,如 java 弱类型语言:变量可以被赋...

  • 强弱类型、动态类型与静态类型初探

    一、强弱类型 类型安全:强类型、弱类型;1974年提出 强类型:语言层面限制实参类型必须与形参类型相同,不允许任意...

  • 强类型弱类型

    静态类型:编译时就确定类型,java/C/C++/golang 动态类型:运行时确定 python/PHP 强类型...

  • 强类型弱类型

    静态类型:编译时就确定类型,java/C/C++/golang动态类型:运行时确定 python/PHP 强类型:...

网友评论

    本文标题:强类型与弱类型

    本文链接:https://www.haomeiwen.com/subject/udydaktx.html