javascript弱类型什么意思
时间:2021-07-01 来源:互联网
今天PHP爱好者给大家带来在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弱类型什么意思的详细内容,更多请关注php爱好者其它相关文章!
-
Ripple首席技术官间接告诉XRP持有者不要在这个价格区间卖出 2025-07-23
-
MEXC 与 Solana 合作举办生态月活动,百万奖池放送不停 2025-07-23
-
2025-2030年E4C币价格预测与未来走势深度解析 2025-07-23
-
2025年十大虚拟币交易APP排行榜汇总 2025-07-23
-
专家预测:狗狗币或迎来218%反弹,目标价0.85美元 2025-07-23
-
投行TD Cowen:微策略溢价「合理透明」,MSTR上看680美元 2025-07-23