浏览器的组成
- shell
- 内核部分
- 渲染引擎(语法规则和渲染)
- js引擎
Javascript三大部分:ECMAScript,DOM,BOM
编译语言:C, C++,
- 优点:快
- 不足:移植性不好(不跨平台)
解释语言:Javascript
- 优点:跨平台,单线程
- 不足:稍微慢
主流浏览器 内核
IE trident
Chrome blink/webkit
firefox Gecko
Opera presto
safari webkit
数据类型
原始值:
Number,Boolean,String,undefined,null
引用值:
array(数组),Object,function······date ,Regexp
任何类型+字符串都等于字符串
a++:先执行后运算
++a:先运算后执行
&&运算符遇到假就停
||运算符遇到真就停
typeof:number,string,boolean,object,function,undefined
-
Number:把类型数据转换数字
-
parselnt(string,radix(进制)):把数据转成整形·——123abc=123
-
parseFloat(string):把数据转成浮点型
-
String:把数据转成字符串
-
Boolean:把数据类型转成布尔值(true,flase)
typeof(a):undefined //未声明变量
arguments :实参数组(实参列表)
return:终止函数,返回值
typeof(null):object
数字符号大部分都是转成数字类型(number)——转不了的为NAN
算法
递归
类数组
-
属性要为索引(数字)属性,必须有length属性,最好加上push
-
一旦给一个对象加上splice方法这个对象长得就和数组一样
var obj={ "0" :"a", "1":"b", "2":"c", age:123, name:"abc", length:3, push:Array.proyotype.push, splice:Array.proyotype.splice }
- 类数组push的原理
Array.prototype.psh=function (target){
obj[obj.length]=target;
obj.length++;
}
时间戳
获得Date总的毫秒数,不是当前时间的毫秒数 ,而是距离1970 年1月1日过了多少毫秒数
- 通过valueof() getTime()
var date=new Date();
console.log(valueof());
console.log(getTime());
- 简单的写法(最常用的写法)
var date=+new Date();
console.log(date);
- H5新增的获得总毫秒数
console.log(Date.now());
数组字符串jion()和split();
var str='12345';
str.split('')//['1', '2', '3', '4', '5']
var arr=[1,2,3,4,5]
arr.jion('-')//1-2-3-4-5
arr.jion('')//12345
arr.jion()//1,2,3,4,5
//使用jion()方法都是字符串类型
检测是否为数组
- instanceof 运算符 它可以用来检测是否为数组
var arr[];
console.log(arr instanceof Array);//true
- Array.isArray(参数); H5新增 IE9以上
console.log(Array.isArray(arr));//true
原数组改变
- push()在我们数组的末尾 添加一个或者多个数组元素;
- unshift()在我们数组的开头添加一个或者多个数组元素;
- pop()删除数组最后一个元素;一次只删一个,所以不需要参数,返回删除的元素;
- shift()可以删除数组的第一个元素;
返回数组元素索引号
indexOf(数组元素)作用就是返回该数组元素的所以号,从前面开始查找
它只返回第一个满足条件的索引号,
它如果在该数组里面找不到元素,则返回的时-1;
lastIndexOf(数组元素)从后查找
数组转换为字符串
- toString()将我们的数组转换为字符串
var arr=[1,2,3];
console.log(arr.toString());//1,2,3
- join(分隔符)
var arr1=['green','blue','red'];
console.log(arr1.join());//green,blue,red
console.log(arr1.join('-'));//green-blue-red
字符串对象 根据字符返回位置 indexOf(’要查找的字符串‘,[起始的位置]可有可无)
根据位置返回字符
1.charAt(index)根据位置返回字符;
var str='andy';
console.log(str.charAt(3))//y
//遍历所有的字符
for(var i=0;i<srt.length;i++){
console.log(str.charAt(i))
}
-
charCodeAt(index)返回相应索引号的字符ASCII值 目的:判断用户按下了哪个键
-
str[index];
字符串的操作方法
- concat(‘字符串’,’字符串2‘…)、、连接字符串
var str='andy';
console.log(str.concat('red'));//andyred
- sbustr(‘截取的起始位置’,‘截取几个字符’);
var str1 ='改革春风吹满地';
console.log(str1.substr(2,2));//春风//第一个2是索引号的2从第几个开始 第二个2是取几个字符
- 替换字符 replace(‘被替换的字符’,’替换为的字符‘) 它只会替换第一个字符;
var str='andyandy';
console.log(str.replace('a','b'));
//有一个字符串’abcoefoxyozzopp‘ 要求把里面的o替换为*
//有一个字符串’abcoefoxyozzopp‘ 要求把里面的o替换为*
var str='abcoefoxyozzopp';
while(str.indexOf('o')!==-1){
str= str.replace('o','*');
}
console.log(str);
- 字符转换为数组 split(‘分隔符’)
var str2='red','green','blue';
console.log(str2.split(','));
- toUpperCase() //转换大写
- toLowerCase() //转换小写