温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-08-25 44 次阅读

javascript是强类型还是弱类型

   

javascript是弱类型。javascript是数据类型可以被忽略的语言,一个变量可以赋不同数据类型的值。javascript允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动转化;而强类型语言一般不允许这么做。

本教程操作环境windows7系统、javascript1.8.5版、dell g3电脑。

强类型定义语言和弱类型定义语言1)强类型定义语言

  强制数据类型定义的语言。这么说来,一旦一个变量被指定了某个数据类型,如果不经过强制转换,这样的话它就永远是这个数据类型了。打比方要是你定义了一个整型变量a,这样的话程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

2)弱类型定义语言

  数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
  强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的防止许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
  例如python是动态语言,是强类型定义语言(类型安全的语言); vbscript是动态语言,是弱类型定义语言(类型不安全的语言); java是静态语言,是强类型定义语言(类型安全的语言)。
  关于各种语言类型的解释,请参考http://blog.csdn.net/aiming66/article/details/78570784#t3
了解了这些,我们在此说一下javascript是弱类型语言。经过思考,我感觉通过一段代码来说明吧。可能这样更加直白。

<!doctype html><html> <head> <title>js练习</title> <style type=text/css> </style> <script type=text/javascript> var num=0; alert(typeof num); num=123; alert(typeof num); num=true; alert(typeof num); num= new date(); alert(typeof num); </script> </head></html>

  其中,我来解释以下代码。下面的几句代码显示如下图,我们不能看出,我们在最初只创建了一个变量num,为var类型,我们却可以给他赋值各种类型数值类型,字符串,布尔类型,对象类型,为此我们可推断出来,javascript为弱类型语言。

javascript中一个变量可以赋不同数据类型的值,它允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动转化;而强类型语言一般不允许这么做。

var num=0;alert(typeof num);

num=123;alert(typeof num);

num=true;alert(typeof num);

num= new date();alert(typeof num);

【相关推荐javascript学习教程】

的原因是什么