JS基础
语言学习路线图
1)背景知识:历史、现状、特点、应用领域、发展趋势
2)搭建开发环境
3)声明变量、常量
4)数据类型
5)运算符
6)逻辑结构
7)通用小程序
8)函数和对象
9)第三方库、组件、框架
10)实用项目
1. JavaScript概述
1.1 定义
JavaScript 是一种运行于JavaScript解释器/引擎的解释型脚本语言;作为JS脚本的运行环境,有两种呈现方式:
服务器端JS——独立安装的JS解释器,Node.js平台;
客户端JS——浏览器中的JS解释器,Chrome浏览器;
JavaScript应用广泛:
- 编写网页,操作网页内容以实现用户交互;
- 编写移动APP应用;
- 编写桌面GUI应用;
- 编写命令行应用;
- 编写企业服务器端应用;
- 2D绘图和3D游戏建模;
- Web VR/AR;
1.2 发展史
1992.Nombas公司.ScriptEase
->1995.Netscape.Javascript
-> 1996.Microsoft.JScript
-> 1997.定义ECMAScript标准脚本语言
-> 2009.CommonJS规范确立JS向服务器端和桌面端应用发展方向,**指定更丰富的API规范,提供编程能力;实现跨硬件平台、操作系统、解释器的体验。**
**目前实现CommonJS规范的技术:Node.js、RequireJS、SeaJA等**
1.3 特点
- 可使用任何文本编辑工具编写,语法与C和JAVA类似;
- 解释型语言,运行前无需编译,平台独立性、严密安全性;编译型语言执行速度快,消耗内存少,但代码量大,不易维护,依赖平台且不能保证安全性
- 弱类型语言,数据类型可以被忽略,需要格外注意数据类型
- 面向对象;
- 跨平台性
JS本身数据类型和对象有限,其运行环境扩展提供更丰富的编程接口:
浏览器提供BOM、DOM对象;NODE.js提供网络访问、文件操作、数据库查询等功能对象
2. JavaScript基础语法
2.1 使用
- 浏览器内核
- 搭建运行环境
1)安装独立的JavaScript解释器;
->"http://nodejs.org"下载安装包;
->命令行 node -v可以查看当前系统node.js版本号;
2)使用浏览器内核嵌入的JavaScript解释器
-> 文本文件更名为.html打开 - 执行JS代码
浏览器:创建01.js和01.html,在01.html中引入01.js:
NODE.js:->编写文件后缀名.js文件,命令行输入“node 01.js”’
两种运行环境都可以交互/脚本执行,浏览器内嵌执行方式可直接在控制台输入/嵌入在HtML页面 - HTML元素事件
- 元素< script >
- 外部脚本文件
2.2 调试
- 代码错误
解释型语言,脚本文件某行代码错误只执行该行代码之前的操作 - 浏览器调试功能
右键->检查或者F12 - Chrome控制台
浏览器端函数
警示框alert(’’);
文本框var user_name = prompt(“请输入用户名”);
//使用var接收用户输入的内容,以string类型保存
写在html文件中script中
2.3 语法规范
编写代码语句由表达式、关键字、运算符组成;
-
大小写敏感;
-
使用分号(可加可不加)或者换行结束;
-
注释:单行//、多行/* */
3 变量和常量
3.1 变量定义
变量是存储信息的容器。
3.2 变量声明
关键字var声明变量,没初始化的变量自动取值undefined;
Eg.var bookPrice, penPrice = 26;
命名规范:
-可以包含字母、数字、下划线、美元符号;
-不能以数字开头;
-不能使用语言关键字和保留字作变量名;
预保留的关键字:class、int、float等
关键字:break、case、catch、continue、default、delete、do、else、false、finally、for、function、if、ininstance、new、null、return、switch、this、throw、true、try、typeof、var、void、while、with、undefined
3.3 变量使用
1)定义时立即初始化;
2)先声明再赋值
3.4 常量声明使用
关键字const声明常量,英文字母习惯使用纯大写,无法改变值的大小
4 数据类型
4.1 数据类型
ECMAScript数据类型可分为原始类型和引用类型,不同JS运行环境支持的原始类型是一样的,引用类型区别很大
原始类型:number、string、boolean、null、undefined
引用类型:Object、Function、Number、String、Boolean、Date、Error、Array
4.2. 原始类型
1)number类型:可以表示32位的整数(十进制、八进制0、十六进制0x),在内存中占4个字节;
也可以表示64位浮点数(用小数点/指数(4.3E-23)记录数据),占8个字节;
2)string类型:字符串表示一系列文本字符数据,由Unicode字符、数字、标点符号组成,使用Unicode编码来保存;不区分字符和字符串类型;首尾由一对单引号或双引号括起;特殊字符需要转义符;
3)boolean类型:true/false(1/0)
4)undefined:声明的变量没有赋值
5)null:用于释放销毁引用类型的地址
js中NaN、null与undefined区别:
1)数据类型:NaN是特殊的number数据类型;null是特殊的Object对象;undefined是undefined数据类型;
2)比较运算:null == undefined,且它们与自己相等;NaN与任何值都不相等;
typeof(null)返回对象object;
判断某个值是否未定义,使用=== undefined,因为认为undefined==null;
4.3. 数据类型转换
弱类型程序语言:声明时不需要指定数据类型;变量由赋值操作确定数据类型;变量可以先后赋值为不同类型的值。
隐式转换:不同类型数据在计算过程中会自动进行转换;string与数值类型作/*-操作强制转换成数字类型再进行计算
1)typeof()函数用于查询变量的当前类型,使用方法:typeof(var);
2)charCodeAt()函数用于查看字符的Unicode编码,使用方法:var.charCodeAt()、‘a’.charCodeAt();
3)Unicode编码转换成16进制,再编码转换成汉字:
unicode.toString(16);
console.log(’\u____’);//汉字Unicode编码范围’\u4e00’~‘9fa5’
4)转义字符’把引号转换成普通字符
数据类型转换函数
1)toString():转换成字符串或者进制;a1.toString();a1.toString(2);
2)parseInt():解析出任何类型的整数部分;从开头查找,遇到非数字或符号结束;如果没有则返回NaN(遇到bool类型也直接返回NaN);parseInt(a1);
3)parseFloat():解析出任何类型的浮点数部分(包括整数);与parseInt类似,但遇到小数点会继续往后;如果没有则返回NaN(遇到bool类型也直接返回NaN);parseFloat(a1);
4)Number():把任意数值类型转换为数值类型(遇到bool类型返回0/1);如果包含非法字符则返回NaN;Number(a1);