JavaScript来源
网景公司为了解决表单验证问题。
JavaScript组成
-ECMAscript:由ECMA(欧洲计算机制造者协会)定义标准。
-DOM(文档对象模型):由W3C定义标准。
-BOM(浏览器对象模型):由firefox来定义标准。
JavaScript简介
JavaScript是互联网上最流行的脚本语言,可用于Web和HTML,更广泛应用于服务器、pc端、移动端。一般运行在宿主环境(如:浏览器)中。
特点:
JavaScript是一种轻量级的编程语言(编程语言:有分支、有循环)。
JavaScript是一种动态语言(一个变量可以持有任意类型的值)。
JavaScript是一种脚本语言,由浏览器解释执行。
JavaScript是一种解释型语言,边解释边执行。
JavaScript的引入方式
1.方法一
可以将JavaScript代码放在
2.方法二
单独创建一个JavaScript文件,扩展名为.js。将编写好的js代码引入到HTML的标签中。引入js的格式为,将放在标签中。
JavaScript输出--write
demo1
注:两条性能优化的规则
-样式表一定要以标签的形式放在
-JS一定要以
-标识符:必须以字母、下划线或美元符$符号开始。
-编码时对大小写敏感。
-空格:js会保留一个空格,多余的空格会被忽略。
-保留字
JavaScript注释
-单行注释:用//注释内容。
-多行注释:用/注释内容/(多行注释不能嵌套)
注释 demo
JavaScript基础--值
值分为两大类:
-基本数据类型(String、Number、Boolean、Undefined、Null)
-引用数据类型(Object、Array、Function)
字面量:
JavaScript基础--变量
变量是存储数据的容器。通过关键字var来声明变量,变量名必须以$、_、字母开头。不能使用关键字、保留字。一般采用驼峰命名法(如:firstName),第二个单词的首字母大写。
variable demo
JavaScript基础--引用数据类型
引用数据类型包括:函数(Function)、对象(Object)、数组(Array)。后面会详写。
JavaScript基础--基本数据类型
字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(undefined)、Symbol (ES6中添加的类型)。可以通过赋值为null的方式清除变量。当用关键字var定义变量时,若没有给变量赋初始值,那么变量的数据类型为undefined。
DataType demo
-typeof(a)/typeof a 返回值的数据类型,注意:是值的数据类型,而不是变量的。js中只有值才持有数据类型。
基本数据类型
JS的基本数据类型
- Number
- String
- Null
- undefined
- Boolean
堆栈
基本数据类型占用空间小,它们的值保存在栈中,按值来访问。
引用数据类型占用空间大,栈内存中存放地址指向堆内存中的空间,按引用来访问。
JavaScript语法--运算符
按操作数的个数:
-一元运算符(一个操作数,如:+a,-b)
-二元运算符(两个操作数,如:a+b)
-三元运算符(三个操作数,如:条件?值1:值2)
--
按功能:
-算术运算符:+ - * / %(取余) ++(自加) --(自减)
-赋值运算符:= += -= *= /= %=
-字符串操作:+(拼接)
-比较运算符:> < == === != !== >= <=
-逻辑运算符:&& || !
-条件运算符:x<10? "x比10小":"x比10大"
算术运算符
--
以+为例
count demo
i=10,j=10,i+j=?
--
以--(自减)为例
自减 demo
i=5,i--?
i=5,--i?
--
++(自加)的一些例子:
+(字符串运算符)
+拼接符号两边的字符串
字符串拼接
逻辑运算符
&&(逻辑与)、||(逻辑或)、!(逻辑非)
逻辑运算返回Boolean值。
赋值运算符
复合赋值操作符
加法赋值 x += y <==> x = x + y
减法赋值 x -= y <==> x = x - y
乘法赋值 x *= y <==> x = x * y
除法赋值 x /= y <==> x = x / y
求余赋值 x %= y <==> x = x % y
--
以%=为例
赋值运算符
比较运算符
大于号 >= 大于等于 < 小于号 <= 小于等于
== === != !==
比较运算符
位操作符
在计算机中数值都以二进制补码形式存储和运算。
无符号数的取值范围:0~255.
有符号数的取值范围:-128~127.
所有的按位操作符的操作数都会被转成补码形式的有符号32位整数。
--按位异或
同为0,异为1
1.将-3转换为32位二进制数
-3的原码
-3 = 1000 0000 0000 0000 0000 0000 0000 0011(负号转为1,正号为0)
-3的反码(符号位不变,按位取反)
1111 1111 1111 1111 1111 1111 1111 1100
-3的补码(末尾+1)
1111 1111 1111 1111 1111 1111 1111 1101
将8转换为32位二进制数(正数的原码、反码、补码相同)
8 = 0000 0000 0000 0000 0000 0000 0000 1000
2.按相同为0,不同为1的规则进行运算(符号位也要参与运算)
1111 1111 1111 1111 1111 1111 1111 0101(补码)
3.将上述结果转为原码(补码转原码)
先-1
1111 1111 1111 1111 1111 1111 1111 0100
取反(符号位不变,按位取反)
1000 0000 0000 0000 0000 0000 0000 1011
最终为-11
条件运算符
条件表达式?语句1:语句2
1.首先执行条件表达式
2.返回值为true则执行语句1,否则,执行语句2.
运算符的优先级
MDN运算符优先级表
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table