废话不多说~直接进入正题
变数(Variable)
变数就像一个箱子,拿来装资料,且所有变数都只能出现一次,不可取一样名字,也不可重复宣告。
在程序语言中的 =
,是赋予值的意思,将等号右边的值放入左边,例如:
let num = 2;
console.log(num); // 2
表示将 2 赋予给 num 这个变数,则 num = 2。
基本资料型态(Primitive Data Types)
在 JavaScript 中最基本的资料储存方式有 7 种,包括 Number、BigInt、String、Boolean、Undefined、Null、Symbol,其他的资料型态都是由这几种组合而成,只要是这几个以外的资料型态,都不是 JavaScript 原始的,例如:Array、Object...等,而 Array、Function 又属於 Object(这边先不多说,之後的文章会来深入探讨 Object)。
数字,且介於 -(2**53 -1)
~ 2**53 -1
之间,用来建立物件的数值,也可以用来转换型别,并且包含许多方法,例如:toFixed()
、toString()
等。
Number 除了能代表浮点数以外,还有三个 symbolic value:+Infinity(正无限大)、-Infinity(负无限大)、NaN(Not A Number)。
toString()
为数字转字串的方法,这个方法只能在 Number 用。let age = 25;
console.log(age+10); // 35
console.log(age.toString()+10); // 2510
toFixed()
为设定小数点要几位数。let pi = 3.141592;
console.log(pi.toFixed(5)) // 3.14159
console.log(pi.toFixed(2)) // 3.14
Number.isNaN()
可以用来判断传入的值是否为 NaN,如果参数没办法被转换成数字,会回传 NaN,例如:输入的内容是 String 时就无法转换为 Number,结果会显示 NaN。let example = "a" + 3;
console.log(typeof example); // string
isNaN(example); // true
补充:
NaN 的资料型别是 Number
Infinity 的资料型别也是 Numberconsole.log(Infinity/Infinity); // NaN console.log(Infinity/0); // Infinity console.log(0/0); // NaN
在微积分里不定形有 6 种,如果在 JavaScript 里就会得到 NaN
就是因为 NaN 包含太多种不定形的可能性,用 NaN 去确认他们的值的话永远不会相等,所以不能用数值去和 NaN 比较,且 NaN 永远都不会等於 NaN,因此我们想确认一个值是不是 NaN 时只能用isNaN()
这个方法。let result = 0/0; console.log(result); // NaN console.log(result == NaN); // false console.log(result === NaN); // false
不管用什麽来跟 isNaN() 比较,都会 return false
let result = 0/0; console.log(isNaN(result)); // true
所以只能在 isNaN() 里面放入要比较的东西
大於 2**53 -1
的整数,使用方式为在後面加一个 n,或是利用 BigInt()
将 Number 转为 BigInt。
console.log(BigInt(123) === 123n); // true
console.log(typeof 123); // number
console.log(typeof 123n); // bigint
字串,放在双引号 "" 或单引号 ' ' 里面,String 有许多方法及属性。
toLowerCase()
:把字串全部换成小写;toUpperCase()
:把字串全部换成大写。let name = "Mary";
console.log(name.toLowerCase()); // mary
let name = "john";
console.log(name.toUpperCase()); // JOHN
split()
:分割let sentence = "I am rich";
console.log(sentence.split(" "));
//["I","am","rich"]
无切割空白
let sentence = "I am rich";
console.log(sentence.split(""));
// ["I","a","m","r","i","c","h"]
indexOf()
找某个元素的索引值let name = "MongoDB";
console.log(name.indexOf('D')) // 5
也可以找某个元素的片段的索引值,结果会显示那个片段开始的索引位置
let name = "MangoDataBase";
console.log(name.indexOf('Data')) // 5
// 意思为 Data 这个片段从索引位置 5 的地方开始
如果寻找的东西字串里根本没有,则会出现索引位置为 -1。
let name = "Mary";
console.log(name.indexOf("m")); // -1
// 因为 name 里根本没有小写的 m
布林值,用来判断 true(真)或 false(伪)。
console.log(10 > 9); // true
console.log(3 < 1); // false
补充:
除了下列几种是 Falsy Values,其他都是 Truthy Values,负数也是 Truthy Value!
表示未被定义,例如一个变数宣告了却没有赋予值给它,则会出现 undefined。
let x;
console.log(x); // undefined
被定义没有任何东西(空值),要特别注意的是 null 的 type 是 object。
let x = null;
console.log(x); // null
console.log(typeof x); // object
Symbol 为一个 function,可以用来创建独一无二的值。
let x = Symbol();
console.log(typeof x); // symbol
参考资料:
MDN - JavaScript data types and data structures
使用gunicorn作为HTTP Server的时候,必须手动指派gunicorn的logger作为...
昨天我们使用这两个 struct 来代表整个游戏的状态,那我们今天就实际的来定义他们 在开始之前 在...
哈罗大家好~ 自从智慧型手机崛起之後,随着应用程序枝开叶散,我们的生活越来越离不开行动装置,甚至也逐...
今天才知道用 && 也可以串接,并且左边的命令失败,右边的命令将不会运行 test@...
Implement next permutation, which rearranges numbe...