-
.代表有待具体
- javascript 区分大小写 忽略空格符号 Unicod转义 u00E9==é 转义字符也可以出现在注释中 //单行注释 /**/多行注释
- 直接量 8数字 "a"字符 true布尔值 /javascript/gi 正则 null空
- 标识符 开头必须为字母,下划线,$ 后面,字母,数字,下划线,美元符,技术层面来讲也可以Unicode字符集中的Mn类,Mc类,Pc类
- 保留字,关键词,arguments,eval,java的关键词,全局对象等 不能作为标识符(每一种特定运行环境客户端,服务器都有自己的全局属性列表)
- 分号:只有在缺少分号无法正常解析代码才会补齐 return break continue则会直接在后面填补分号 ++ --做后缀不在同一行则会做下一行前缀;
- 数据类型 分为原始类型 number string boolean null undefinde 对象类型
- 用函数初始化对 称为 构造函数(constructor)
- 特殊的三种类 日期(date) 正则(RegExp) 错误(Error)
- javascript解释器 当他不在有任何引用指向就会内存管理机制回收
- 一元运算符 进制直接量8进制好像有问题 浮点直接量可以科学计数法
- Infinity无穷大 超过表达数值上限 被0整除时候
- 下溢,能表示的最小值还小的时候
- 数据舍入误差.3-.2 != .2-.1
- 字符串直接量“one ow”拆分数行 反斜杠和行结束符不算字符直接量 html里写javascrip onclick = "alert( 'thank you ' )"
- 转义字符 (有待具体o ) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- String对象 +连接符 方法 属性
- RegExp()正则表达式 不是javascript基本类型 API特殊对象>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- Boolean 真值 假值(空,null,,0)之类
- 全局对象:在代码顶端用this指向全局对象,全局属性,全局函数,构造函数 ()>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- "a" -包装对象--->new String(a);实际上不一定做了这个操作,看起来是这样 对象通过.调用成员 原始数据类型可以读取属性或方法,如果给属性赋值,修改只会发生在临时对象,临时对象不会保留
- 不可变的原始值 可变的对象引用 当对象同时引用一个基对象他们才全等
- 类型转换(写了文件)
- 显示转换 隐式转换>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- 对象转换为原始值 布尔值:所有的·对象(数组或函数) 转为true 所有的对象继承两个转换方法一个是toString,valurof,转字符串或数字 就是两种方法里面转
- 变量提升,变量作用域 作为属性的变量 严格模式 var声明不可配置不可以delete 不用var是绑定在全局上的可配置
- 作用域链
- 原始表达式 对象数组初始化表达式 函数表达式 属性访问表达式可以通过点或[] null undefined不能调用属性,调用属性不为对象转换为对象(或者数组) >>>>>>>>>>>>>>>>>>>>>>>感觉就是声明赋值跳过
- 调用表达式 函数没有返回值undefiend 先计算函数表达式在计算参数表达式
- 对象表达式 后面的括号是传参,不传参可以省略
- 运算符 从右至左 从左至右 ~按位求反 三元=三个运算符 希望的操作数
- var a="b" 左值a右值b ECMAScript只内置函数返回左值,自定义函数不行 返回a
- 运算符: 运算符副作用:先后表达式顺序混乱 优先级问题 赋值运算符影响整个表达式 一元,赋值,三元,从右至左的结合性 运算顺序JavaScript严格从左到右
- 算数:无法转换数字转换NAN,整数相除有小数保留 5/2=2.5 0/0=nan没意义 %取模运算 模运算 求余数 "+"运算符 对象转原始值 判断是否字符串
- 一元运算符:一元加法(+):把操作数转数字(或者NAN);一元减法(-):操作数改数字,变负数 递增递减 前增量(先赋值,后运算),后增量
- 位运算:可以对由数字表示的二进制数据进行更底层的按位运算 按位于&:两个操作数都是一为一 按位或|:只要一个操作数是一为一 按位异():10//true 按位非(~)转为负数减一,左移(<<):10<<2 = 100 二进制数向左移动后面加零相当于乘以二· 右移(>>) 二进制数向右移动后面加零 无符号右移(>>>) 和右移一样(不大清楚)
- 相等和不等式
=:布尔值相同时相等 0=-0 字符串16位编码值相等 两个引用指向一个对象相等 两个值都是null或undefined或NaN不相等
:nullundefined//true 字符串会转换后比较 '1'==1//true 布尔值会转为0和1比较 对象转原始值比较 - 比较运算符
小于(<):1<2//true 为对象转换 都是字符串 字母表顺序(16位Unicode) 比较 有一个是数字转数字比较
大于(>):2>1//true 所有的大写ASCII字符都小于ASCII小写字母
小于等于(<=):2<=2//true
大于等于(>=):2>2//true