我们可以在变数做宣告时,是否绑定型别来判定程序语言是动态型别或是静态型别,而两者区别如下:
静态型别在编译时期,要明确定义变数的型别,先确认并检查型别,到了执行阶段时,就不能随意更换型别,否则会发生错误,例如:Java、C#...
动态型别在编译时期,不需要先定义变数的型别,等到了执行阶段才会确定型别,且在执行阶段型别也可不断转换,例如:JavaScript...
接下来以 JavaScript 来看动态型别的特性:
在创造阶段时,变数 nickName
并未先定义型别,要等到执行阶段时,才会确定型别,所以值得本身就具备型别,而我们是把值赋予到变数上,变数得型别是来自於值的
// 1.创造阶段
var nickName;
// 2.执行阶段
nickName = 'Carol';
console.log(typeof nickName); // string
console.log(typeof 'Carol'); // string
动态型别的型别是可以做更换的,变数 data
被赋予数字到变数上,是数字型别,後被赋予字串的值,变成字串型别
var data = 1;
console.log(typeof data); // numbar
data = '一个字';
console.log(typeof data); // string
我们必须先了解在执行程序码的过程中,会做怎样的型别变化,不然会落入型别转换的陷阱,型别转换又分为 2 种 - 显性转换
与隐性转换
当变数的值直接被赋予另一个型别的值,称为显性转换
var data = '一个字';
console.log(typeof data); // string
data = true;
console.log(typeof data); // boolean
在隐性转换中,是来自 JavaScript 运算过程中的型别变化
将一个数字型别加上任一个字串,会转换成字串型别
变数 data
原是实体蓝色 1,为数字型别,加上一个字串後,转为实体黑色 1一个字,为字串型别
var data = 1;
console.log(data); // 1
console.log(typeof data); // numbar
data = data + '一个字';
console.log(data); // 1一个字
console.log(typeof data); // string
乘法会将为字串型别的数字转为数字型别
变数 data
原是实体黑色 1,为字串型别,因使用乘法後,转为实体蓝色 10,为数字型别
var data = '1';
console.log(data); // 1
console.log(typeof data); // string
data = data * 10;
console.log(data); // 10
console.log(typeof data); // number
<<: 新新新手阅读 Angular 文件 - Router - pathMatch(1) - Day27
A.14 系统获取、开发及维护 A.14.1 资讯系统之安全要求事项 目标:确保资讯安全系跨越整个生...
第二种启动相机的方法 昨天勾选 Camera 的 Auto Start 来启动相机。 今天使用第二种...
相信经过了前面二十几天的洗礼,小夥伴们应该都对Vue有了一定的掌握度了吧~ 今天要来提到的是Vue的...
废话不多说,上(别人的)影片 Half-Dive是由Diver-X设计的,是日本的公司,他们预计从今...
字串(String) 字串(String)就是一连串的字元 先来看字串简单介绍吧~ <?php...