1.宣告a 赋值 null
var a = null
赋值:数字、"字串"、null、undefined... 皆不是 就是「另一变数」
2.indexOf()
, 要数个
? 可有可无
3.split()
https://www.w3schools.com/jsref/jsref_split.asp
string.split(separator, limit)
[]阵列
4.空白的定义
5.侦错、抓错
console.log(变数); 放进去看看这到底是甚么?
ex:console.log(errMag);
var errMag = 1 / "apple"; //NaN console.log(errMag); //是甚么? var errMag = 1 / 0; //Infinity console.log(errMag); //是甚么? console.log(typeof errMag); //甚么型别?
6.有几个? 想到>>length
7.JavaScript by reference vs. by value
传址 vs.传值
区别实益:更改述职时会不会被取代(传值x.传址v)
number -> 传值
Array -> 传址
EX:
var lsB = lsA;
取得 lsB 第一个位置的值
console.log(lsB[0]); // 1,其实是lsA的1
修改 lsB 第一个位置的值
lsB[0] = 999; console.log(lsB.toString()); // 999,2,3,4,5,6
将 lsA 列印出来查看
JavaScript by reference vs. by value(传址) (传值)
没有lsA改变,lsA为什么变了??? 因为「回传址」非「回传值」
console.log(lsA.toString()); // 999,2,3,4,5,6
8.甚么时候需要一个物件?
非常多的变数形容一个物体的时候
ex:人
var Sid = 1; var SName = "Crash"; var SHtml = 100; var SPhone = ["0910000000", "0412345678"];
ex:成绩
var apple = { //key1:value1 chinese: 100, english: 90, math: 70, };
9. {}、[]、.差异
(1)var a = {物件}
中括弧里面有字串,「前面」一定是个物件
ex:apple
var apple = { //物件 = 属性 + 方法 chinese: 100, //key1:value1 english: 90, math: 70, }; console.log(apple["math"]); //物件的找法 console.log(apple);
(2)var a = [阵列]
中括弧里面非字串,是数字
ex:poker
var poker = []; poker[0] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; console.log(poker[0].length); //13 因开0号柜子 里面有13个
(3) . 的
ex:苹果的英文 apple.english
console.log(apple.english); //90
10.四则运算前,维持符号左右「必须」都是数字
"字串" 的四则运算
var apple = "11"; var bee = "1"; console.log(apple + bee); //1+11=111 黏起来XD console.log(apple - bee); //你就是数字啦= = 脱你"字串"衣服(蓝色) console.log(apple * bee); //你就是数字啦= = 脱你"字串"衣服(蓝色) console.log(apple / bee); //你就是数字啦= = 脱你"字串"衣服(蓝色)
Ex: 关于"字串"的运算的陷阱
a. "11" + 1 // 111(O) 12(X) b. "11" - 1 // 10(O)
11.让比较值「两个一组」,电脑才不会误会
(1) 3 > 2 > 1
因
(1-1) 3 > 2 = true
(1-2) true =1 >1 false
console.log(3 > 2 > 1); // false (==??)
12.判断式请单纯!
计算在判断式外面做
在外面算好在抓近来比较
var apple = 10; var bee = 20; if (apple++ > 10 && bee-- < 20) { console.log(`A. apple:${apple}, bee:${bee}`); } else { console.log(`B. apple:${apple}, bee:${bee}`); }
apple= 11因为 && ,apple++ > 10 一定是fales,出来结果一定是fales,会进入Bbee = 20所以就只算前面 ,后面就不继续计算了(嫌麻烦逆XD?)
结论:判断式在外面算好再进去比较
ex:if (apple > 10 && bee < 20)