* 概念:一门客户端脚本语言
* 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎
* 脚本语言:不需要编译,直接就可以被浏览器解析执行了
* 功能:
* 可以增强用户和HTML页面的交互过程,可以来控制HTML元素,让页面有动态的效果,增强用户的体验
* JavaScript的发展史:
* 1992年,Nombase公司开发出第一门客户端脚本语言,专门用于表单校验,命名为:C - -,后来更名为ScriptEase
* 1995年,Netscape公司,也开发了一门客户端脚本语言:LiveScript。后来,请来了SUN公司的专家,修改LiveSript,命名为JavaScript
* 1996年,Microsoft公司,抄袭了JavaScript开发出了JScript语言,搅乱了市场
* 1997年,ECMA(欧洲计算机制造商协会),制定ECMAScript,成为了所有客户端脚本语言的标准
* JavaScript = ECMAScript + JavaScript特有的东西(BOM + DOM)
* 基本语法
* 与HTML的结合方式
* 内部JS:定义<script>标签,标签体的内容就是JS代码
* 外部JS:定义<script>标签,通过src属性引入外部的JS文件
* 注意:<script>标签可以定义在html的任何位置,且可定义多个
但是JS代码的位置会影响页面加载的顺序
* 注释
* 单行注释: // 注释内容
* 多行注释: /* 注释内容*/
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 内部JS--> <script !src=""> alert("我是内部JS") // 单行注释 /* 多行注释 */ </script> <!-- 外部JS--> <script src="a.js"></script> </head> <body> <input type="text"> </body> </html>
* 数据类型
* 原始数据类型(基本数据类型):
* number:整数、小数、NaN
* string:字符、字符串
* boolean:布尔值
* null:空对象的占位符
* undefined:未定义,如果一个变量没有给初始化值,默认就为 undefined
* 引用数据类型(对象):
* 变量
* 一小块存储数据的内存空间
* Java语言是强类型的语言,JS是弱类型的语言
* 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
* 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据
* 语法:
* var 变量名 = 初始化值;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>变量</title> <script !src=""> /* var a = 3; alert(a) a = "abc"; alert(a)*/ // 定义number类型 var num1 = 1; var num2 = 1.2; var num3 = NaN; document.write(num1 + "<br>"); document.write(num2 + "<br>"); document.write(num3 + "<br>"); // 定义string类型 var str1 = "abc"; var str2 = ‘d‘; document.write(str1 + "<br>"); document.write(str2 + "<br>"); // 定义boolean类型 var flag = true; document.write(flag + "<br>"); // 定义null和undefined类型 var obj1 = null; var obj2 = undefined; var obj3; document.write(obj1 + "<br>"); document.write(obj2 + "<br>"); document.write(obj3 + "<br>"); </script> </head> <body> </body> </html>
* 运算符
* 一元运算符:只有一个运算数的运算符
* ++、- -、正号、负号
* ++(- -)在前,先++(- -),再运算
* ++(- -)在后,先运算,再++(- -)
* 注意:在JS中,如果运算数不是运算符所要求的类型,那么JS的引擎会自动的将运算数进行类型转换
* 其他类型转number:
* string 转 number,按照字面值转换。如果字面值不是数字,那么就会转为NaN
* boolean 转 number,true为非零,false为零
* 算术运算符
* 加减乘除,取模取余
* 赋值运算符
* 等号、+=、-=
* 比较运算符
* >、<、>=、<=、==、===(全等于)
* 比较方式
* 类型相同:直接比较
* 字符串,按照字典顺序按位注意比较,直到得出大小结果为止
* 类型不同:先进行类型转换,再比较
* 字符串和数字,会先将字符串转换成数字再比较
* === 全等于:在比较之前会先判断类型,如果类型不同就会直接返回 false
* 逻辑运算符
* &&、||、!
* &&:短路与
* ||:短路或
* !:非
* 其他类型转boolean:
* number 转 boolean:0或NaN为假,非0为真
* string 转 boolean:空字符串为假,非空为真
* 对象 转 boolean:所有对象都为真
* null、undefined 转 boolean:null 和 undefined都是假
* 三元运算符
* 表达式 ?值1 :值2
* 判断表达式的值,如果是 true 则取值1,如果是 false 则取值2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>运算符</title> </head> <script !src=""> var num = +3; document.write(typeof num); num++; document.write(num + "<hr>"); var b = +"123bc" document.write(b + "<hr>"); var a = 1; var b = 2; document.write(a + b + "<br>"); document.write(a - b + "<br>"); document.write(a * b + "<br>"); document.write(a / b + "<br>"); document.write(a % b + "<hr>"); var a = 1; var b = 2; var c = "c"; document.write((a > b) + "<br>"); document.write((a > c) + "<hr>"); var str = ""; document.write(!!str + "<hr>"); var date = new Date(); document.write(date + "<hr>"); </script> <body> <!--一元运算符--> <!--算术运算符--> <!--赋值运算符--> <!--比较运算符--> <!--逻辑运算符--> <!--三元运算符--> </body> </html>
* 流程控制语句
* 基本对象
原文:https://www.cnblogs.com/zhaochuming/p/12804315.html