JavaScript小结
1.JavaScript是什么?动态的,弱类型
(from W3School:http://www.w3school.com.cn/js/index.asp )
JavaScript 是属于网络的脚本语言!
JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。
JavaScript 是因特网上最流行的脚本语言。
2.实现:<script type="text/javascript"></script>标签。
3.语句、注释、标识符(变量名,函数名)、保留字
4.变量:弱类型
变量类型是可变的
5、数据类型:typeof运算符
undefined
Null == undefined
Boolean (类型转换:if('yes'){....})
Number NaN!=NaN, isNaN ,类型转换parseInt("1234.5abc"),parseFloat()
String 类型转换:12.toString() 单引号,双引号
function:函数类型
6.运算符:基本和java差不多,其中“==”是指比较内容,eg:var a="123";var b=123;alert(a==b);//true
“===”是比较内容和类型,eg:var a="123";var b=123;alert(a===b);//false
7.控制语句:基本和java差不多
8.函数
1)普通定义与调用
2)动态参数arguments,下例:
1 function plus(){ 2 //参数对象(数组) 3 if(arguments.length>0){ 4 var sum=0; 5 for(var i=0;i<arguments.length;i++){ 6 sum+=arguments[i]; 7 } 8 } 9 return sum; 10 } 11 //调用 12 var x=plus(10,20,30,40); 13 alert(x);//=100
3)匿名定义和调用,匿名函数定义,定义匿名函数,将函数地址赋值给变量
9.基本类型(undefined,null,number,boolean,string)/引用类型:Object 、Array、Function
1)动态属性: delete p.name
2)复制引用:
var o1=new Object();
var o2=o1;
o1.name='ada';
alert(o2.name);//ada
3)传递参数 不能通过参数在函数内部改变外部对象
4)类型检测 instanceof
10.作用域:变量的有效范围
1)执行环境;每个函数就是一个执行环境
2)作用域链
3)搜索变量
4 )没有块级作用域
5)声明变量(var)自动添加到最近的环境,未声明变量直接添加到全局环境
11.Object创建的两种方式
1)new Object()
2){"name":"ada","sex":"male"} //JSON方式
eg://Object对象创建的方式
//1.new
var p=new Object();
p.name="ada";
//2.JSON
var p={"name":"ada","sex":"male"};
alert(p.name);
alert(p.sex);
//属性访问方式
alert(p["name"]);
alert(p["sex"]);
//遍历全部属性
for(var a in p){
document.write(p[a]);
}
12.Array
1)创建:new Array();
//1.
var a=new Array(4);
alert(a.length);
//2.
a[0]=1;
a[1]=2;
a[3]=4;
alert(a[2]);
2)创建并初始化: a=[1,2,3];
3)数组动态性
var a=[1,2,3];
a[10]=11;
alert(a.length);//11
alert(a[3]);//undefined//a[3]---a[9]都是undefined
4)转换:toString()
5)push():添加尾元素
var a=[1,2,3];
a.push(4);//压栈
alert(a);//1,2,3,4
6)shift():删除头元素
var a=[1,2,3,4];
var x=a.shift();
alert(x);//2,3,4
7)sort(a,function(v1,v2){}),排序
var a=[15,1,3,5,20,50]; a.sort(function(v1,v2){ if(v1>v2){ return 1; }else if(v1<v2){ return -1; }else{ return 0; } }); alert(a);//顺序,从小到大,1,3,5,15,20,50
8)slice(start,end)截取
var a=[1,2,3,4,5,6,7,8];
var b=a.slice(2,6);
alert(b);//3,4,5,6
9)splice :删除(0,2),插入(2,0,"aaa"),替换(2,1,"aaa)
10)indexOf,返回某个指定的字符串值在字符串中首次出现的位置
11)arr.forEach(function(item,index,array){});//迭代
12)arr.every/arr.some
13)filter筛选,eg: 筛选:10以上的元素
var a=[15,2,12,3,5,11,18];
var b=a.filter(function(item,index,array){
return item>10;
});
alert(b);//15,11,18
13.Date:
1)创建 new Date()/new Date(2010,5,6,14,25,30)
2)date.now()
3)date.getTime()/getYear()/getMonth()/getDay()/getDate()
14.Function
1)函数作为参数值
2)caller
function A(){B();}
function B(){alert(B.caller);}
3)函数是对象:
length属性,参数个数
apply();
call();
window.color="red";
var o={color:"blue"}
function sayColor(){
alert(this.color);
}
sayColor.call(window);
sayColor.call(o);
var oSayColor=sayColor.bind(o);
oSayColor();
15.Global终极对象
eval方法,将字符串转化为表达式
eg:var jstu=eval("("+jstr+")");//代码注入攻击,少用
16.Math对象(from W3School:http://www.w3school.com.cn/jsref/jsref_obj_math.asp )
方法 描述
abs(x) 返回数的绝对值。
acos(x) 返回数的反余弦值。
asin(x) 返回数的反正弦值。
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x) 对数进行上舍入。
cos(x) 返回数的余弦。
exp(x) 返回 e 的指数。
floor(x) 对数进行下舍入。
log(x) 返回数的自然对数(底为e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
sin(x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x) 返回角的正切。
toSource() 返回该对象的源代码。
valueOf() 返回 Math 对象的原始值。
2016-10-13