概念:一门客户端脚本语言,
- 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
- 脚本语言:不需要编译,直接就可以被浏览器解析执行了
功能:
- 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
一、基本语法:
1.1、与html结合方式
//1、内部js:定义<script>,标签体内容就是js代码
<script> alert("Hello World");</script>
//2、外部js:定义<script>,通过src属性引入外部的js文件
<script src="./js/a.js"></script>
- 注意:
1.
1.2 注释
- 单行注释://注释内容
- 多行注释:/* 注释内容 */
1.3 数据类型:
- 原始数据类型:
number
: 数字。 整数/小数/NaN(not a number 一个不是数字的数字类型);
string
: 字符串。 字符串 “abc” 、“a” 、 ‘abc’;
boolean
: true 和 false;
null
: 一个对象为空的占位符;
undefined
: 未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined; - 引用数据类型:对象;
1.4 变量
- 变量:一小块存储数据的内存空间
- Java语言是强类型语言,而JavaScript是弱类型语言。
- 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
- 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
- 语法:
- var 变量名 = 初始化值;
var num = 1;
var num2 = 1.2;
var num3 = NaN;
var str = "abc";
var str2 = 'edf';
var flag = true;
var obj = null;
var obj2 = undefined;
var obj3 ;
- typeof运算符:获取变量的类型。如: typeof(str);
- 注:null运算后得到的是object;
1.5 运算符
1.一元运算符:++,-- , +(正号) -(负号);
- 注意:
在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数都转成number类型;
string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
boolean转number:true转为1,false转为0
其他转number:变量的数值都为NaN;
2.算数运算符:+ - * / % …
3.赋值运算符:= += -+
4.比较运算符:> < >= <= == ===(全等于)
比较方式:
- 类型相同:直接比较
字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止 - 类型不同:先进行类型转换,再比较
===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
5.逻辑运算符:&& || ! - 其他类型转boolean:
- number:0或NaN为假,其他为真
- string:除了空字符串(""),其他都是true
- null&undefined:都是false
- 对象:所有对象都为true
6.三元运算符
? : 表达式
var a = 3;
var b = 4;
var c = a > b ? 1:0;
- 语法:
- 表达式? 值1:值2;
- 判断表达式的值,如果是true则取值1,如果是false则取值2;
2.0流程控制语句
1. if...else...
2. switch:
* 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
* switch(变量):
case 值:
* 在JS中,switch语句可以接受任意的原始数据类型
3. while
4. do...while
5. for
7. JS特殊语法:
1. 语句以;结尾,如果一行只有一条语句则 ;可以省略 (不建议)
2. 变量的定义使用var关键字,也可以不使用
* 用: 定义的变量是局部变量
* 不用:定义的变量是全局变量(不建议)