js概念
一门客户端脚本语言
- 运行在客户端浏览器中。每一个浏览器都有JavaScript的解析引擎
- 脚本语言:无需编译,直接被浏览器解析执行
功能
可以控制HTML元素,让页面有动态效果,增强用户和HTML页面的交互过程
JavaScript发展史
一开始各种客户端脚本语言很乱,ECMA制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式
JavaScript=ECMAScript+JavaScript自己特有的东西(BOM+DOM)
ECMAScript:客户端脚本语言的标准
一、基本语法
与HTML结合方式
-
内部js
定义<script>,标签体内容就是js代码
-
外部js
定义<script>,通过src属性引入外部的js文件
注意:
- <script>可以定义在html页面的任何地方。但定义的位置会影响执行顺序
- <script>可以定义多个
注释
- 单行注释://注释内容
- 多行注释:/*注释内容*/
数据类型
- 原始数据类型(基本数据类型)
- number:数字。整数/小数/NaN(not a number 一个不是数字的数字类型)
- string:字符串(js中没有字符的概念)。“aaa” ‘a’
- boolean:true/false
- null:一个对象为空的占位符
- undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
- 引用数据类型(对象)
变量
变量:一小块存储数据的内存空间
java语言是强类型语言,JavaScript是弱类型语言
强类型:在开辟变量存储空间时,定义了空间将来存储数据的唯一类型。只能存储唯一类型的数据
弱类型:在开辟变量存储空间时,没有定义空间将来的存储数据类型,可以存放任意类型的数据
语法:
var 变量名 = 初始化值;
运算符
-
一元运算符
+(-)正负号
在js中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
- 其他类型转number
- string转number:按照字面值转。如果字面值不是数字,则转为NaN(不是数字的数字)
- boolean转number:true转为1,false转为0
-
比较运算符
-
类型相同:直接比较(字符串按照字典顺序比较)
-
类型不同:先进行类型转换,再比较
===:全等于。在比较之前,先判断类型,如果类型不一样,直接返回false
-
-
逻辑运算符
-
&&:与(短路:前面一个能判断出布尔值,后面的就不再判断)
-
||:或(短路)
-
!:非
其他类型转boolean:
- number:0或NaN为false,其他为true
- string:除了空字符串(“”),其他都是true
- null&undefined:都是false
- 对象:所有对象都为true
-
-
三元运算符
表达式?值1:值2
表达式为true,取值1;为false,则取值2
-
特殊语法
-
语句以;结尾,如果一行只有一条语句,则;可以省略(不建议)
-
变量的使用使用var关键字,也可以不适用
用:定义的变量是局部变量
不用:定义的变量是全局变量(不建议)
-
流程控制语句
-
switch:
在js中,switch语句可以接受任意的原始数据类型
在java中,switch语句可以接受的数据类型:byte int short char,枚举(1.5),string(1.7)
switch (a){ case 1: alert("number"); break; }