小东西
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');