一、什么是JS?
ECMAScript
JScript
JS是一种基于对象和事件驱动的脚本语言
提高用户体验性
二、为什么要使用JS?
提高体验性
使页面更加美观
三、JS用在什么地方?
Web交互、页面特效、JS游戏
四、JS的特性
JS是一种客户端脚本语言,是基于浏览器运行的
五、JavaScript基本语法
1)在HTML代码当中嵌入JS的方式:
①直接在HTML代码中的任意位置加入<script></script>标签
<script type="text/javascript">
......
</script>
②外部加载
<head>
<script type="text/javascript" src=" "></script>
</head>
③事件调用
<div onclick=" "></div>
④超链接调用
<a href="javascript:......;"></a>
2)严格区分大小写
3)标识符以数字、字母、下划线和 $ 组成,不能以数字开头
4)注释
// 单行注释
/* */ 多行注释
5)JS语句以分号结尾,若省略分号则自动解析换行为一个语句的结尾
6)变量的声明
可以使用 var,也可以不使用 var,但在函数内声明变量时使用或不使用 var 时变量的作用域不同
声明变量可以同时声明多个变量,用逗号隔开
7)数据类型
1.基本数据类型
字符串
变量与字符串、变量与变量的连接使用“+”
数值型
整型、浮点型、科学计数法(2e3)
Infinity(正无穷)、-Infinity(负无穷),二者不可参与计算,isFinite()判断数值是不是无穷的
NaN(非数值)、isNaN()判断一个值是否为非数值类型
布尔型
true、false 严格区分大小写
2.复合数据类型
对象
数组
3.其他数据类型
函数
null
undefined 定义了一个变量但未赋值、使用了一个未定义的变量、使用了一个不存在的对象的属性时,返回undefined
8)数据类型转换
1.隐式类型转换
其它类型转为数值型:
true->1 false->0
null、空字符串->0
"0xf"->相同大小的十进制数值
"011"->11 "1.1"->1.1 "11"->11
undefined及其它字符->NaN
其它类型转为布尔型:
"true"->true "false"->true
非空字符串、非0数值、任何对象->true
""、0、NaN、null、undefined->false
其它类型转为字符型:
0->"0" 1->"1"
0.1->"0.1"
null->"null"
NaN->"NaN"
undefined->"undefined"
true->"true" false->"false"
2.显式类型转换
其它类型转为数值型:
Number()
parseInt() 强转为整型
忽略字符前的空格,直到找到第一个非空格字符;
第一个字符为负号或不是数字,返回NaN;
空字符串返回NaN;
第一个字符为数字则继续解析至非数字字符;
将形式为八进制或十六进制的字符串转为对应进制数值
parseFloat() 强转为浮点型
第1个小数点有效,第二个小数点无效;
始终忽略字符前面的0;
空字符串返回NaN;
其它类型转为布尔型:
Boolean()
或使用两次!运算符:
var i="true";
if(!!i){ }
其它类型转为字符串型:
String()
六、函数
1.函数的创建
①方式一
使用function关键字,使用方式与PHP方式基本一致
function 函数名([参数1,][参数2,]...){
......
return 返回值;
}
函数声明时的参数不可有默认值,可在方法体中用如下方式替代:
if(参数1===undefined){
参数1=默认值;
}
②方式二(不推荐使用)
var 函数名=new Function('参数1','参数2',......,'方法体');
③方式三
var 函数名=function([参数1,][参数2,]...){
......
return 返回值;
}
2.获取创建的函数的参数
var myfunc=function(){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
}
var s=myfunc(1,2,3,4,5);
document.write(s);
arguments.length 为参数的总个数
arguments[i] 为对应的实际参数值
3.JS的系统函数
①escape() 编码函数
将字符串中的特殊字符及中文等转换成相应的ASCII值,使其不会干扰字符串的处理
②unescape() 解码函数
将escape()编码产生的文字转换成原字符
③eval() 将字符串指定为对象解析
4.函数变量的作用域
在函数体内部使用var声明的变量,为局部变量
在函数体内部不使用var声明的变量,为全局变量,在函数体内外均可使用
七、对象
1.创建对象
①方式一
var person=new Object();
person.name="autumn";
person.age=25;
person.info=function(){
document.write(this.name+this.age);
}
person.info();
②方式二(JSON声明方法,是Ajax使用最多的数据模式)
var person={'name':"autumn",'age':25,info:function(){
document.write(this.name+this.age);
}};
③方式三(用构造函数创建一个对象)
function Person(name,age){
this.name=name;
this.age=age;
this.info=function(){
document.write(this.name+this.age);
}
}
var p=new Person("autumn",25);
p.info();
2.遍历对象
for(var i in 对象名){
document.write(对象名[i]+"<br>");
}
例:
for(var i in window){
document.write(i+"----"+window[i]+"<br>");
}