小東西
1.訪問未初始化的變量
var a;
console.log("The value of a is "+a);// logs "的值未定義"
console.log("The value of b is "+b);// 拋出ReferenceError異常
2.數據類型
六種原型數據類型(Boolean、null、undefined、Number、String、Symbol)以及Object對象
3.數據轉換
parseInt()和parseFloat()分別用于字符串變為數字的全局方法。//雙引號~
4.對象的值
對象屬性名字可以是任意字符串,包括空串。如果對象屬性名字不是合法的javascript標識符,它必須用""包裹。屬性的名字不合法,那么便不能用.訪問屬性值,而是通過類數組標記("[]")訪問和賦值。
5.函數的遞歸
function factorial(n){
? if((n==0)||(n==1))
? return1;
? else
? return(n*factorial(n-1));
} ? ?// 用自身遞歸計算階乘
6.閉包
JavaScript允許函數嵌套,并且內部函數可以訪問定義在外部函數中的所有變量和函數,以及外部函數能訪問的所有變量和函數。但是,外部函數卻不能夠訪問定義在內部函數中的變量和函數。這給內部函數的變量提供了一定的安全性。而且,當內部函數生存周期大于外部函數時,由于內部函數可以訪問外部函數的作用域,定義在外部函數的變量和函數的生存周期就會大于外部函數本身。當內部函數以某一種方式被任何一個外部函數作用域訪問時,一個閉包就產生了。
7.函數默認參數是undefined
對象數組以及字符串
1.創建對象
創建對象
//直接創建
person=new Object();
person.name="bill";
person.age="13";
//函數構造對象
function person(name,age)
{
this.name=name;
this.age=age;
}
var myFather=new person("bill","13");
//對象初始化器
person={name:"bill",age:"13"};
2.常用的APi
1.數組
concat() //連接數組
join() //把數組變為字符串 默認分隔符為“,”,可以變為“ ”、“.”等等......
pop() //刪除并返回最后一個元素
shift() //刪除并返回第一個元素
unshift(newelement1,newelement2,....,newelementX) //向數組的開頭添加一個或更多元素,并返回新的長度
push() //在末尾添加一個元素并返回數組的新長度
reverse() //顛倒數組中元素的順序
slice(start,end) //提取start到end的數組值,原數組不改變
sort()/sort(sortNumber) //字母順序排序、數值大小排序
splice(index,howmany,item1,.....,itemX) //如果刪除數量(howmany)為0就不刪除直接在index后面添加items,item為可選屬性
toSource()?//返回該對象的源代碼
toString()?//把數組轉換為字符串,并返回結果
3.字符串練習
// 字符串長度
function stringLength (str) {
var theLength=str.length;
return theLength;
}
// CHONG重復打印
stringLength('strr');
function repeatStringNumTimes (str,num) {
var result="";
while (num > 0) {
result += str;
num--;
}
return result;
}
repeatStringNumTimes('huang',3);
function repeatStringNumTimes (str,num) {
var array = [];
for (var i = 0; i < num; i++) {
array.push(str)
}
return array.join("");
}
repeatStringNumTimes ('strin',3);
// 字符串去重函數
function uniqString(str) {
var Arr = str.split("");
var newArr = [];
for (var i in Arr) {
if (newArr.indexOf(Arr[i]) == -1){
newArr.push(Arr[i]);
}
}
var strr = newArr.join("");
return strr;
}
uniqString('wwwooorrrdddd');
// 字符串翻轉
function reverseString(str) {
var arr = str.split("");
var reverseArr = arr.reverse();
var strr = reverseArr.join("");
return strr;
}
reverseString('str');
// 去除數字
function removeNum(str) {
var res;
if (typeof str === 'string') {
res = str.replace(/\d/g, '');
}
else {
res = str ;
}
return res;
}
removeNum('s1t4r3');
//統計字符串出現的數量
function caculateExistNum(str){
var res = {};
var Arr = str.split('');
Arr.forEach(function (eachChar){
res[eachChar] = res[eachChar] ? res[eachChar] + 1 : 1;
})
var strr = '';
var key = Object.keys(res);
key.forEach(function(eachChar) {
strr = strr? + res[eachChar] + eachChar;
})
return strr;
}
caculateExistNum('strr');