什么是javascript弱类型

这篇文章主要讲解了“什么是javascript弱类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是javascript弱类型”吧!

弥渡网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

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

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

强类型语言:

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

弱类型语言:

数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

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

js弱类型的体现

 一般规律是,约束越强越不容易出错,但编写程序时也越麻烦。在JavaScript中,因为约束比较弱,所以容易出现这种错误:最简单的例子:

 var a =200;
 var b ="1";
 var c= a + b;

你可能期望c是201,但实际上它是"2001",这个错误在强类型语言中决不会出现。然而正是因为JavaScript没有这些约束,所以可以很方便地拼接数字和字符串类型。

再比如下面这个例子:

var a = '11';
a = a - '';
alert(typeof a);// -->number

“-”可以是一元运算符(取负),也可以是二元(减法运算)

在循环语句中(if,while)中,一个Object对象可以隐式的转换从BOOLEAN值。

var obj = {name:'jack'}
if(obj){
    //do more
}

比较难以发现的是在alert()函数中。

String.prototype.fn = function(){return this};
var a = 'hello';
alert(typeof a.fn()); //-->object
alert(a.fn()); //-->hello

我们知道this可以理解成当前类的实例对象,既然是对象那么typeof a.fn()自然返回是object了。

关键是最后的alert(a.fn()),a.fn()返回的明明是对象,但却隐式的转换成了字符串“hello”显示。

感谢各位的阅读,以上就是“什么是javascript弱类型”的内容了,经过本文的学习后,相信大家对什么是javascript弱类型这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页名称:什么是javascript弱类型
本文来源:http://scyanting.com/article/pdsoee.html