* 概念:一门客户端脚本语言
* 运行在客户端浏览器中的,每一个浏览器都有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