Some Function
hasOwnProperty()
Array.prototype.myFunction = function(){
alert('my function');
};
var arr = [
{age : 1,name : 'mike'},
{age : 2,name : 'jake'},
{age : 3,name : 'tom'},
];
for(var x in arr){
console.log(arr[x].name);
console.log(arr[x].age);
}
for…in可能的BUG
Array.prototype.myFunction = function(){
alert('my function');
};
var arr = [
{age : 1,name : 'mike'},
{age : 2,name : 'jake'},
{age : 3,name : 'tom'},
];
for(var x in arr){
if(!arr.hasOwnProperty(x)){continue;}
console.log(arr[x].name);
console.log(arr[x].age);
}
Math方法
Math.random()
var int = parseInt(Math.random()*10 +1);
Math.ceil()
console.log(Math.ceil(25.9));
Math.floor()
console.log(Math.floor(25.9));
Math.round()
console.log(Math.round(25.4));
console.log(Math.round(25.5));
Math.abs()
console.log(Math.abs(-12.5));
Math.max()和Math.min()
console.log(Math.max(1,5,6,8,7,1,2));
console.log(Math.min(5,6,8,7,1,2,34,));
数组的简单方法应用
添加方法 unshift() push()
var arr = [1,2,3,4,5];
console.log(arr.push('北京'));
console.log(arr);
console.log(arr.unshift('上海'));
console.log(arr);
删除方法 pop() shift()
var arr = [1,2,3,4,5];
console.log(arr.pop());
console.log(arr);
console.log(arr.shift());
console.log(arr);
sort()排序和reverse()倒叙
var arr = [51,28,24,128,458,345];
console.log(arr.sort());
console.log(arr.sort(function(a,b){return a-b;}));
console.log(arr.sort(function(a,b){return b-a;}));
console.log(arr.reverse());
join()方法和concat()方法
var arr1 = [1,2,3];
var arr2 = ['北京'];
var arr3 = [true];
console.log(arr1.join(''));
console.log(arr1.concat(arr2.concat(arr3)));
splice()方法
var arr = [1,2,3,4,5];
console.log(arr.splice(2));
console.log(arr);
var arr = [1,2,3,4,5];
console.log(arr.splice(1,3));
console.log(arr);
var arr = [1,2,3,4,5,6,7,8,9,10];
console.log(arr.splice(1,3,'北京'));
console.log(arr);
字符串理解
String---->是一个对象
String---->是一个对象
* 字符串可以看成是字符组成的数组,但是js中没有字符类型
* 字符是一个一个的,在别的语言中字符用一对单引号括起来
* 在js中字符串可以使用单引号也可以使用双引号
* 因为字符串可以看成是数组,所以,可以通过for循环进行遍历
* 字符串特性:不可变性,字符串的值是不能改变
* 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改 变了
字符串的常用属性:
* .length------>字符串的长度
* .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字 符串
* .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
* .concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
* .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串 的索引值,没找到则返回-1
* .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右 的方式,找不到则返回-1
* .replace("原来的字符串","新的字符串");用来替换字符串的
* .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为 10的前一个结束,没有10,并返回这个提取后的字符串
* .split("要干掉的字符串",切割后留下的个数);切割字符串
* .substr(开始的位置,个数);返回的是截取后的新的字符串
* .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结 束的索引的字符串,不改变原始字符内容
* .toLocaleLowerCase();转小写
* .toLowerCase();转字符串内容小写,不会改变原始字符串内容
* .toLocaleUpperCase()转大写
* .toUpperCase();转大写
* .trim();干掉字符串两端的空格
总结Date对象的用法:
var dt=new Date();
var dt=+new Date();
console.log(dt);
dt.getFullYear();
dt.getMonth();
dt.getDate();
dt.getHours();
dt.getMinutes();
dt.getSeconds();
dt.getDay();
dt.toDateString();
dt.toLocaleDateString();
dt.toTimeString();
dt.toLocaleTimeString();
dt.valueOf();
Array对象的方法;
* Array.isArray(对象)---->判断这个对象是不是数组
* instanceof关键字
* .concat(数组,数组,数组,...) 组合一个新的数组
* .every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)
* 如果这个数组中的每个元素的值都符合条件,最后才返回的是true
*
* .filter(函数);返回的是数组中每一个元素都复合条件的元素,组成了一个新的数组
* .push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度
* .pop();--->删除数组中最后一个元素,返回值就是删除的这个值
* .shift();--->删除数组中第一个元素,返回值就是删除的这个值
* .unshift();--->向数组的第一个元素前面插入一个新的元素,----返回值是插入后的程度
* .forEach(函数)方法---遍历数组用---相当于for循环
* .indexOf(元素值);返回的是索引,没有则是-1
* .join("字符串");----返回的是一个字符串,可以做转化为数组
* .map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中
* .reverse();----->反转数组
* .sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码
* .arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值
* .splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素
基本包装类型
基本包装类型
普通变量不能直接调用属性或者方法
对象可以直接调用属性和方法
*基本包装类型:本身是基本类型,但是在执行代码的过程中,如果这种类型的变量调用了属性或者是方法,那么这种类型就不再是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对象
//string number boolean
var str="hello";
// str=str.replace("ll","HH");
// console.log(str);
// var str=new String("hello");
// str=str.replace("ll","HH");
// console.log(str);
// str=null;
// var num=10;//number---->
// console.log(num.toString())
//如果是一个对象&&true,那么结果是true
//如果是一个true&&对象,那么结果是对象
// var flag=new Boolean(false);
// var result=true&&flag;
// console.log(result);
字符串与数组的互相转化
1、数组转字符串
arr.join()
2、字符串转数组
str.split(',')
正则表达式