7.1js解释型脚本语言
概念:js解释型脚本语言。
浏览器内核
其他浏览器——webkit
Chrom——webkit
Firefox——类似于webkit(没有兼容问题)
Safari——webkit
版本问题:其他浏览器——js
IE浏览器
IE6/7/8——jscript 是一个内核
IE9/10/11——兼容性越来越好 是另一个内核
Edge——与webkit相似(没有兼容问题)
组成部分:ECMAScript——脚本语言的语法(变量、函数、语句、命名规则)
DOM——document object model文档工程模式(用于js和HTML之间的交互)
BOM——browser object model(主要浏览器提供的一系列内容)
如何使用js:目前的 JS 代码全部都写在 <body> 后
调用文件:<script src="02_test.js"></script>
7.2调试代码
建议:开发时不要使用国产浏览器
Chrome、火狐浏览器、Safari()
IE浏览器——兼容问题
注释:单行注释//
多行注释/* */
测试代码的结果:控制台输入(开发者工具)console
console.log() - 表示输出日志
console.info() - 表示输出信息
console.warn() - 表示输出警告
console.error() - 表示输出错误
提示框 - alert()
alert(‘这是一个提示’)
document.write() - 直接将结果写入到HTML页面中
document.write(‘会在页面中出现’)
7.3 基本语法
区分大小写——只针对英文
大小写不同含义不同。
var str = ‘this is string’;
Js 代码中使用 :空格 制表符(tad)换行符 让代码更标准。
占用文件空间。
相同js代码提供两个版本:
开发版本 :具有空格、制表符和换行符。代码可读性高
压缩(生产)版本:去掉空格、制表符和换行符。代码不分行,一直写
语句(了解)
标识符 表达式{ ( {}叫做语句块 )
语句
}
语句特点:语句独占一行。
关键字与保留字
关键字:在开发中不能使用(js本身使用的单词)
保留字:在开发中不能使用(js目前没有使用的单词,未来可能会用)
变量与常量
数据:目前我们获得用户的一切信息。阿里巴巴(从it到dt 从互联网技术 到数据技术)。
变量:(变化的值):每次只能存储一个数据,最后一次赋值有效。
变量用于存储数据的容器。
变量存储类型:弱类型和强类型。
一个变量中允许存储多种数据类型,这种情况就叫做弱类型/松散类型。
TODO 变量存储的类型
TODO * 一个变量中允许存储多种数据的类型
TODO * 这种情况,变量就叫做 弱类型/松散类型
TODO 弱类型与强类型的区别
TODO * 弱类型
TODO * 只声明变量,但不赋值时 - 并不清楚变量的类型
TODO * 只有在变量被赋值时,明确变量的类型
TODO * 强类型
TODO * 在声明时,必须先明确变量的类型
TODO 注意
TODO * 在声明变量时,建议必须使用 var 关键字
TODO * ECMA 5版本允许不使用 var 关键字
TODO * 严格模式 - 必须严格遵循 JS 的语法要求
TODO * ECMA 5版本出现问题
TODO * ECMA 6版本出现问题
变量名:对应容器上的名字(允许重复使用)。
Var 变量名 = 数据(值);
Var:关键字
= : 表示赋值
命名规则:必须以字母、下滑线、$ 、数字组成,数字不能开头。
Undefined和not defined的区别(面试题)
Undefined 声明了变量 但是未赋值。
Not defined 未声明变量。
TODO 使用变量
TODO * 当直接使用未定义的变量时,报错
TODO str is not defined - str 没有被定义
TODO 注意
TODO * 必须要先声明,才能使用
常量(const):声明变量依旧使用var关键字
认为规定这是一个常量,不能再
在常量里边不允许只声明不赋值。
当声明常量或变量不使用关键字时 默认为变量(不建议使用)
Js区分大小写:
声明变量时,使用全小写;
声明常量时,使用全大写。
TODO 在实际开发中
TODO * 用户管理模块 - 命名规则
TODO 都是以 user_ 开头
TODO * 商品管理模块
TODO 都是以 product_ 开头
重复声明相同变量---> 不会报错 ---> 最后一次声明的有效
7.4 数据类型
数据:有效的信息。
未了满足所有数据的可能性,以及对数据的操作
类型——对数据的分类。
数据类型的分类:在ECMA官方文档中并没有提供任何分类。
分类:
1原始类型:(字面量,全小写)
string——字符串
number——数字
boolean——布尔值
2包装类型:(首字母大写)
String——字符串
Number——数字
Boolean——布尔值
3引用类型:
4特殊类型:
undefined
null
字符串类型:(建议使用单引号)
转义字符:(面试题day07)
,\, f ’ “
数字类型:number
分类: 整数 和 小数
整数(Int整型)1. 10.0自动转换成10
小数(Float浮点型).1(不推荐)0.1
浮点型计算上会得到近似值,有误差。
解决:
浮点类型的计算,不在客户端
而是将每个浮点类型的值,传递给服务器。
NaN: not a number(不是一个数字)用作类型转换时得到的数字类型结构。
NaN和任何值都不相等,包括它自己。
如何判断转换后的值是不是NaN .
console.log( isNaN);true//不是数字
false//是一个数字
布尔类型(true 和false)(全小写)
非布尔值会转化为布尔值。
false:undefined , 0 ,空字符串,NaN, null