JS基础(1)
一,JS概述
1.1 概述
全称:JavaScript
1995年,由网景公司和Sun公司开发完成
是基于对象和事件驱动的脚本语言,应用在客户端
基于对象:提供了很多对象,可以直接使用
事件驱动:js实现动态效果
作用:提高用户体验,提供交互效果
1.2 特点
交互性:实现信息的动态交互
安全性:不可以直接访问磁盘上的文件
跨平台性:只要是可以解析js的浏览器都可以使用
1.3 和Java之间的关系
JavaScript和Java没有任何关系,就是两门不同的编程语言
a.开发公司
Java:Sun公司
js:网景公司
b.对象
Java:面向对象
js:基于对象
c.数据类型
Java:强类型的语言,例如:double height; int age;
js:弱类型的语言,变量的类型由值决定,例如:var age = 3;
1.4 js的组成
a.ECMAScript提供的一套js语法
b.BOM:Browser Object Model,浏览器对象模型
c.DOM:Document Object Model,文档对象模型
1.5 js和html的结合方式
方式一:内嵌式
在head标签中,使用script标签,在script中编写js代码
方式二:外联式
创建js文件,在js文件中编写js代码,使用script标签在src属性中引入该js文件
细节:
1.两种方式可以同时使用,且可以使用多次,执行顺序与书写顺序一致
2.两种方法不同混合使用
1.6 js中的注释
作用:对代码进行解释说明
单行注释:// 注释内容
多行注释:/* 注释内容 */
二,JS语法
2.1 变量
2.1.1 变量定义
使用关键字var
var age = 20;
var weight;
weight = 80;
2.1.2. 变量的命名规则
a.可以由数字、字母、下划线、美元符组成
b.不能由数字开头
c.不能包含空格和中文
d.不能和关键字重名
e.严格区分大小写的
规范:
1.见名知意
2.使用驼峰命名
2.2 数据类型
2.2.1 一般的数据类型
Boolean:布尔类型,只有true和false
Number:数值类型
String:字符串,用一对单引号或者双引号括起来的内容
Object:对象
Array:数组
Function:函数
RegExp:正则表达式
2.2.2 特殊的数据类型
Null:当定义了一个变量后,但是这个变量没有任何指向,那么它的类型就是Null
Undefined:定义了一个变量,但是没有赋值
NaN:not a number,不是一个数字
2.3 运算符
2.3.1 算术运算符
+:求和,字符串拼接
-:减法
*:乘法
/:除法
%:取模,求余数
细节:
1.结果的正负与被摸数一致
2.a%b的结果范围是[0,b)
++:自增1
--:自减1
前置后置:
1.单独运算时,前置后置没有区别
2.复合运算,
前置:先执行自增(减),再执行其他操作
后置:先执行其他操作,再执行自增(减)
2.3.2 逻辑运算符
参与运算的值必须是布尔值
&&:逻辑与,并且
||:逻辑或,或者
!:逻辑非,取反
^:异或,表达式两边相同结果为false,表达式两边不同结果为true
2.3.3 关系运算符
>:大于 <:小于 >=:大于等于 <=:小于等于 !=:不等
==:相等,判断值是否相等
===:相等,判断值和类型是否完全相等
2.3.4 赋值运算符
=、+=、-=、*=、/=、%=
var a = 3;
a = a + 3;等价于a += 3;
2.3.5 三目运算符
格式:
条件表达式 ? 表达式1(变量或者常量): 表达式2(变量或者常量)
原理:
判断条件表达式的结果,如果结果为true,执行表达式1;反之执行表达式2。
2.3.6 typeof操作符
typeof用来检测变量的数据类型
字符串返回string
整数小数返回number
布尔值返回boolean
数组、JSON返回object
2.4 流程控制
2.4.1概述
流程控制分为3类:
顺序结构、分支结构、循环结构
2.4.2 分支语句–if
2.4.2.1 单if结构
if(条件表达式){
语句
}
2.4.2.2 双分支(标准的if-else结构)
if(条件表达式){
语句1
}else{
语句2
}
2.4.2.3 多分支
if(条件表达式1){
}else if(条件表达式2){
}else if(条件表达式3){
}else {
}
2.4.2.4 嵌套
if(条件表达式1){
if(条件表达式2){
}
}
2.4.3 选择语句–switch
格式:
switch(表达式或者变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
default:
语句n;
break;
}
细节:
1.case后的值必须是唯一的
2.default表示没有任何一个case与switch后的值匹配时的默认情况
3.break表示跳出整个结构,不写break会具有穿透性
2.4.4 循环语句
2.4.4.1 循环语句–while
格式:
while(条件表达式){
循环体
}
2.4.4.2 循环语句–do-while
格式:
do{
循环体
}while(条件表达式);
2.4.4.3 循环语句–for
格式:
for(①初始化;②条件表达式;③步进表达式){
④循环体
}