JavaScript 介绍
1.1 JavaScript最初的目的
判断客户端的输入是否合法
1.2 JavaScript 现在的目的
页面特效(PC端的网页效果)
移动端(移动web和APP)
异步和服务器交互
服务端开发nodejs
浏览器:
1.User Interface 用户界面,我们走看到的浏览器
2.Browser engine 浏览器引擎,用来查询和操作渲染引擎
3.Rendering engine 用来显示请求的内容,负责解析HTML、CSS
4.Networking 网络,负责发送网络请求
5.JavaScript Interpreter (解析者)JavaScript解析器,负责执行JavaScript的代码
6.UI Backend UI后端,用来绘制累死组合框和弹出窗口
7.Data Persistence (持久化) 数据持久化,数据存储 cookie、HTML5中的sessionStorage
1.3 JavaScript是世界上用的最多的脚本语言
脚本语言:不需要编译,直接运行时边解析边运行的语言。
编译:一次性把代码转换成CPU可以看懂的语言(01010101),一行一行执行。
解析:一行一行解析,解析一行执行一行。
1.4 JavaScript 是一种客户端的脚本语言,运行在浏览器上;
1.5 JavaScript 发展历史,略。
1.6 JavaScript 组成:
ECMAScript: JavaScript的语法规范;
DOM: JavaScript 操作网页上元素的API
BOM: JavaScript 操作浏览器部分功能的API
Script 标签
1.2 引入JavaScript
HTML页面书写
引入外部 JavaScript文件
1.3 标签属性
Type
Type=”text/javascript”
可以省略
async
async=”async”
值可以省略,立即异步下载外部JS,不影响页面的其它操作,JS下载完毕立即执行。
Async 异步: 多个人同时做多件事情(跟生活中的理解相反)
Sync 同步,一个人有序的做多件事情(跟生活中的理解相反)
Defer
Defer=”defer”
值可以省略,脚本延迟到文档完全被解析和显示后再执行,只有外部脚本可以使用
变量
变量是在计算机中存储数据的一个标识符
变量可以在声明的时候赋值,也可以稍后赋值。
可以在一行上定义多个变量。例如:var name,age,sex;
变量命名规则和规范
规则
-由字母、数字、下划线、$组成
-不能是关键字和保留字
-区分大小写
规范(建议遵守)
-变量的名称要有意义
-变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写
-例如:userName
注释
单行注释
- //单行注释
多行注释
-/* 多行注释 */
注释的应用
-注释一般用于解释某些复杂代码的逻辑,方便后期的维护和开发
-注释一般用于对整个模块进行分割划分,方便代码查找和维护
-注释一般用于:模块、函数、复杂逻辑注解、文件注解、维护记录等
数据类型
四种常用的数据类型
- Number
- String
- Boolean
- Undefined
数据类型
计算机在存储数据的时候是有类型的
JavaScript 中的数据类型
- 简单(基本、值)数据类型
Number、string、Boolean、undefined、null
- 复杂(引用)数据类型
Object、array、date等
- 查看当前变量的数据类型
Typeof name
Typeof (name)
数值字面量
字面量
- 固定的值,让你从“字面上”理解其含义
数值字面量
- var age = 18;//数值字面量,18为字面值。
Number 类型
十进制
var num = 9;
进行算数计算时,八进制和十六进制表示的数值最终都会转换为十进制数值。
十六进制
var num = 0~a;
数字序列范围:0~9以及A~F
八进制
Var num1 = 07; //对应十进制的7
Var num2 = 019;//对应十进制的19
Var num3 = 08;//对应十进制的8
浮点数
Var n = 5e-324;
浮点数值的最高精度为17位小数,但在进行算数计算时,其精确度远远不如整数
- var resule = 0.1 + 0.2;//结果不是0.3,而是0.30000000000000004
- console.log(0.07*100);
- 永远不要测试某个特定的浮点数值(不要判断两个浮点数是否相等)
数值范围
由于内存的限制,ECMAScript 并不能保存世界上所有的数值
最小值:Number.Min_VALUE,这个值为:5e-324
最大值:Number.Max_VALUE,这个值为:1.7976931348623157e+308
无穷大:Infinity
无穷小:-nfinity
数值检测
NaN 非数值(Not a Number)
Console.log(“abc”/18);//结果是NaN
NaN与任何值都不相等,包括NaN本身
IsNaN():任何不能被转换为数值的值都会导致这个函数返回true
IsNaN(NaN);//true
IsNaN(“blue”);//true
IsNaN(123);//false
String 类型
字符串字面量
-var name =“张三”;//”张三”字面量
字符串要用引号引起,单引号和双引号的作用是等效的
例如:
var name = “zhangsan”;
var name = ‘zhangsan’;
错误示范
var name = ‘zhangsan”;//单引号和双引号要成对出现
字符串是由一个一个字符组成的,获取一个字符串中的字符个数可以使用length
例如:var name = “zs”;alert(name.length);/
转义符
要想打印“ ”或者‘ ’怎么办?
Var str = “hello \”world\””;//打印输出hello“world”
转义符
\n 换行符
\t 制表符
\b 空格符
\r 回车符
\f 进纸符
\\ 斜杠符
\’ 单引号
\” 双引号
\xnn 以十六进制代码nn表示的一个字符(其中n为0~F),例如:\x41表示“A”
\unnnn 以十六进制nnnn表示的一个Unicode字符(其中n