Javascript 进阶 3-3 动态型别

Javascript 是动态型别的语言

必须在执行阶段才会赋予确立型别

以下面的例子说明

    var name = '小明'        // 创造阶段    var name;    // 执行阶段    name = '小明';

name 这个变数要到了执行阶段才会被确立型别为 '小明' 的字串。

这个时候,我们可以利用 typeof 来做型别的确认

    var name = '小明'        console.log(typeof(name)); // string    console.log(typeof('小明')); // string

透过 typeof ,我们可以知道执行到现在的时间点,该变数的型别为甚么。

同时直接检查值得型别,也可以得到预期的结果,例如检查为 '小明' 字串,得到的回应就是 string。

再来看看另一段範例程式:

    var num = 1;    console.log(typeof(num)); // number    num = '文字';    console.log(typeof(num)); // string

所以透过这段程式码的範例可以看到,变数的型别会随着赋值不同而转换成不同的型别。

另外再行别转换的内容中,也有特别要注意的两个陷阱。

显性的转换 Explicit conversion

就是变数直接被赋予另外一个值得时候,就称为显性的转换。

如同上方的範例,num 这个变数一开始被赋予数字 1,但后来又被赋予字串 '文字'。

所以在被赋值完之后,其型别就从数字(number)转变为字串(string)。

隐性的转换 Implicit converison

他在转换的过程中,可能会透过某些运算方式,改变其变数的内容以及型别,以下举两个例子:

    var num = 1;    num = num + '';    console.log(num, typeof(num)); // 1, string

第一个就是在针对数字的时候,+上字串的内容,该变数就会变为字串。

第二个内容接续刚刚的程式码:

    var num = 1;    num = num + '';    console.log(num, typeof(num)); // 1, string        num = num * 3;    console.log(num, typeof(num)); // 3, number

对写入数字字串的变数进行乘法的话,则会再被转换为数字型别。

以上就是这章的分享,希望有帮助到大家,汪汪~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章