1.什么是JavaScript
2.ECMAScript
3.BOM
4.DOM
一、JavaScript简介
1.什么是JavaScript
简称js,一种直译式并且广泛应用于客户端的脚本语言。
直译式:不需要进行编译就可以运行,js是逐行解析的。(解释型语言)
客户端:分为b/s和c/s架构,现阶段主要以浏览器为主。
脚本语言:有一定的计算能力,不需要编译即可执行。
2.JavaScript的作用
为html增加动态效果。
例子1:鼠标移动到左侧菜单项,在右侧弹出当前分类的具体分类信息。
例子2:鼠标移动到菜单上的时候会有颜色的变化,鼠标从菜单上移走的时候效果消失。
例子3:点击切换按钮或者间隔一定的时间,轮播图会进行切换。
3.JavaScript的特性
直译式:不需要编译
弱类型:所有的变量均可以用var进行接收
跨平台:js会通过浏览器内置的js引擎进行逐行解析,与平台无关
字符集:默认使用的字符集是unicode(两个字节一个字符)。
大小写:严格区分大小写。
使用分号表示一句话的结束。
4.JavaScript组成部分
ECMAScript (核心):规定了JS的语法规范。
DOM 文档对象模型:处理网页内容的方法和接口。通过DOM可以获取和操作HTML内容和结构。
BOM 浏览器对象模型:与浏览器交互的方法和接口。通过BOM可以操作浏览器的功能。
接口是由各大浏览器实现。
5.JavaScript的引入方式
(1)内部脚本
在html页面内,添加<script></script>,在标签内编写JS代码。
<script>
alert("hello");
</script>
注:<script>标签理论上可以放在html页面的任何位置。一般放在<head>标签中。
(2)外部文件
创建后缀名为 .js的文件,在文件中编写JS代码。(在js目录下创建aaa.js文件)
alert("你好");
在html页面中,使用<script src="js文件路径">引入js文件。
<script src="js/aaa.js"></script>
注:在引入js文件时,<script></script>标签中不包含任何内容,也一定要写结束标签。
二、ECMAScript
1.注释
JS中的注释分为单行注释和多行注释。
单行注释 //
多行注释 /* */
2.常量
12 // 整数类型常量
1.2 // 浮点数类型常量
"hello world" // 字符串类型常量
'Hi' // 字符串类型常量
true // 布尔类型常量
false // 布尔类型常量
/^[a-z]{3,5}$/gi // 正则表达式
null // 空
{ x:1, y:2 } // javascript中的对象 json格式
[1,2,3,4,5] // javascript中的数组
3.变量
(1)变量定义
JS是弱类型语言,定义变量时,统一使用var关键字
语法:var 变量名=值;
(2)命名规则
必须以字母或下划线开头,中间可以是数字、字符或下划线。
变量名不能包含空格等符号
不能使用JS关键字作为变量名
JS严格区分大小写。建议使用小写开头
4.函数
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
(1)函数声明
语法
function 函数名([参数,...]) {
函数体代码
}
代码示例
/*无参无返回值函数*/
function fun(){
alert(111);
}
/*有参无返回值函数*/
function add(x,y){
alert(x+y);
}
/*有参有返回值函数*/
function add2(x,y){
return x+y;
}
(2)函数调用
fun();
add(1,2);
var result = add2(1,2);
(3)函数表达式
语法:var x = function([参数,.....]){函数体代码}
var x = function(a,b){return a*b;};
var result = x(1,2);
alert(result);
5.数据类型
(1)数据类型举例
Numbers 数字类型
Strings 字符串类型
Booleans 布尔类型
Null 空
Undefined 未定义类型
Objects 对象类型
Arrays 数组类型
Date 日期类型
(2)number类型
JavaScript中只有一种数字类型。64位浮点数。遵循IEEE-754标准,类似于Java中的double类型。
语法:
var x = 10 //整数
var x = 017 //八进制
var x = 0x16 //十六进制
var x = 3.14 //浮点数
var x = .33 //浮点数
注意事项:JS中浮点数运算,结果不精确。
var a = 0.1;
var b = 0.2;
var result = a+b;
alert(result);
(3)String类型
在JavaScript中没有字符类型。字符串可以使用双引号,也可以使用单引号。
语法:
var s = "abcde";
var s2 = ‘中文’;
获取字符串长度 length属性
var num = s.length;
字符串的一些函数
charAt //获取字符串某个位置的字符
concat //连接字符串
indexOf // 查找指定字符串在字符串中第一次出现的索引位置
lastIndexOf //倒叙查找指定字符串在字符串中第一次出现的索引位置
match //用来匹配正则表达式(查找符合规则的子串)
replace //替换字符串
split //分割字符串(结果是一个数组)
substring //截取子串
toLowerCase //转小写
toUpperCase //转大写
(4)布尔类型
语法:var flag = true;
注:在做条件判断的逻辑运算时,其他数据类型可以自动转型为布尔类型。转型规则如下:(后面再演示,在这先看一下规则)
Number 非0 为true 0 为false
String 非空串 为true 空串为false ("" '')
null false
undefined false
Object 不是null为true 是null为false
Arrays 不是null为true 是null为false
(5)Object类型
JS中创建对象的方式有多种,在这里讲解一种最常用的方式。(json格式)
语法
var 对象名={
属性1:值,
属性2:值,
...
函数名:function(){
}
}
代码示例
var user = {
id:1,
name:'小杰',
age:18,
sayHello:function(){
alert('欢迎来到王者荣耀!');
},
multiply:function(a,b){
return a*b;
}
};
alert(user.id+" "+user.name+" "+user.age);
user.sayHello();
alert(user.multiply(2,3));
(6)Arrays 数组类型
JS中的数组是动态数组。由于JS本身是一个弱类型的语言,数组中也可以同时存储多种类型的数据
定义方式:
var aa1 = [1,3,9,10];
var aa2 = [4,6,"abc","ccc",{x:1,y:2}];
使用下标访问数组元素
alert(aa1[0]);
alert(aa1[1]);
...
alert(aa1[4]);
aa1[5] = 100;
alert(aa1[5]);
其他定义方式
var arr = new Array(10,11,68) // 由 10 11 68 组成的数组
var arr = new Array(10) //10个长度的数组,数组中还没有赋值
var arr = new Array('aaa','ccc','bbb');
数组操作的函数
length //属性,获取数组长度
sort() //数组排序(默认升序)
sort(function(a,b){}) //传入排序规则
join() //把数组的元素组成字符串,默认使用,连接
join(“符号”) //用指定的符号连接
reverse() //数组翻转
push() //把元素存在数组末尾
pop() //取到数组的末尾元素,并移除数组中的这个元素
unshift() //把元素存在数组的开头
shift() //取到数组开头的元素,并移除数组中的这个元素
toString()
toLocaleString()
代码示例
var aa = [2,4,3,1,5];
alert(aa);
aa.sort();//数组排序 默认正序
alert(aa);
//逆序排序
aa.sort(function(a,b) {return b-a});
alert(aa);
//数组转字符串
alert(aa.toString());
alert(aa.toLocaleString());
alert(aa.join());
alert(aa.join("+"))//根据给定的符号拼接字符串 5+4+3+2+1
//反转字符串
aa.reverse();
alert(aa);
//添加在尾部
aa.push(99);
alert(aa);
//弹出尾部元素
aa.pop();
alert(aa);//99被弹出
//添加在头部
aa.unshift(100);
alert(aa);
//弹出头部元素
aa.shift();
alert(aa);//100被弹出
(7)null空类型
Null(空值)类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
(8)Undefined 未定义类型