强型别语言在变数被宣告的时候必须指定资料型别给它,如果对变数做了错误型别的运算则会出现错误,优点是能减少在执行时期(Runtime)发生的错误。
而弱型别的 JavaScript 刚好相反,变数本身不带有资料型别的资讯,其中的值或物件才有。在执行时期透过变数内容来参考至物件或值,才会知道变数有什麽操作方式。取得语法简洁的优点,但要注意型态转换时产生非预期的问题。
JavaScript 主要有分成基本型别(Primitives)及物件型别(Object)两大类型别。可以用 typeof 运算子来做判断型别的方式。
var str1 = "Let's go!";// 双引号
var str2 = 'Let\'s go!';// 单引号遇到错误时在前面加\(escape character 跳脱字元)
var str3 = `Let's go!`;// 反引号
var str4 = "Hello, " + "world.";//用+连接字串
console.log(str4)
Hello, world.
用+
在字串加上变数:
var age = 25;
var str5 = "I'm " + age + " years old.";
console.log(str5)
I'm 25 years old.
var str6 = `I'm ${age} years old.`;// 用样板字面值加上变数的用法
console.log(str6)
I'm 25 years old.
过去断行与样板字面值的差异
var hello1 = "这不是一行文\n这是第二行\n这是第三行";
console.log('10', hello1)
10 这不是一行文
这是第二行
这是第三行
var hello2 = `这不是一行文
这是第二行
这是第三行`;// es6後用反引号可以直接断行
console.log('11', hello2);
11 这不是一行文
这是第二行
这是第三行
isNaN(NaN); // true
isNaN(123); // false
isNaN("123"); // false, 字串被转成数字
isNaN("NaN"); // true, 转成数字但不是数字
但是用 isNaN(value)这个方法会透过隐含的 Number()转成数字,所以後来会建议用 Number.isNaN(value)来取代,可以参考 MDN 上的差异。
「带有小数点的浮点数字」,是什麽意思呢?
试着输入 0.1+0.2=... 的结果我惊呆了
0.1+0.2=0.30000000000000004
0.1+0.2===0.3; // false
因为 JS 的 number 是基於 「IEEE 754」二进位浮点算数标准,十进位的小数无法完美的转换成二进位表示,只能用无限循环的位数来趋近於十位数的小数(IEEE 745 规定 24 位数上限),所以会省略一些位数,导致还原时小数不够精准。二进位的世界啊!门外汉的全新体验!
boolean(布林值)
只有两种,分别是 ture 以及 false。
通常用在判断式,作为控制程序流程的用途。
null (没有值)
明确代表此变数没有值。
undefined
尚未给值, 未定义。
var a = null; // null
var b; // undefined
// 008 天的举例很清楚的解释两者的区别
型别先到这边,
前言 在昨天的文章,带来简单的错误处理运用,今天要带来较为实务上的运 Go 语言本身没有例外处理机制...
何谓Git? *说明 : 一套分散式的版本控制系统。 *作用 : 版本控制能够记录档案的内容变化,并...
接着在讲一个也是很常用到的功能,优惠!!! 看似人人喜爱的两个字,实际上范围跟方法多到爆炸....,...
本篇介绍固定navBar应用篇—仿IT邦帮忙 每进入iT邦帮忙网站,忍不住都会滑一下卷轴吧?上方h...
套路程序码的4种方法 | 一步一步来 | DEMO 🐄点此填写今日份随堂测验 ...