Node.js基础
***Node.js 以 JavaScript 作为编程语言的,准确地说应该是 ECMAScript。相对于前端开发者,Node.js 开发者应具备更高的 JavaScript 语言水平。***
Node.js 编程:JavaScript语言基础
标识符:
变量名
函数名
对象的成员名
函数的参数
标识符的要求:
大小写敏感:标识符、操作符
使用下划线、字母、Unicode中的语言字符、美元符号开头,可以包含数字
不能是保留字和关键字
标识符的示例:
合法:strUserDesc / s1 / $q / 我是Sid / _length / q_s
非法:1s / #q / q-s / q#s / false
驼峰命名法与匈牙利命名法:类型+表意
严格模式:
作用:消除ECMAScript老版本中的不合理、不严谨、不安全之处,提升效率,为ECMAScript的新版本做准备
范围:函数范围的严格模式,整个脚本的严格模式
Node.js中建议全部使用严格模式
严格模式的使用与范围
'use strict'
严格模式的影响:
变量的严格声明
禁止动态绑定:不得使用with,eval作用域
不能删除变量,即不能 delete strUserDesc
不得重名:属性名、参数名
禁止使用八进制表示数字
保留字不得用做标识符
注释方法
//
/**/
/*
*
*
*/
语句
一行就是一条语句
语句使用分号结尾,虽然是可选项,但建议使用分号结尾
代码块:使用大括号组织的多条语句,在可用可不用的情况下,建议使用
关键字
定义:ECMA-262中特定用途的词
范围:控制语句词(if switch case in catch...)、执行特定操作词(break default delete new return this...)
保留字
定义:现在没有特定用途,但未来可能做关键字的词
范围:普通模式(class enum extends super const export import)、严格模式中额外增加的(implements package interface static public protected private yield let )
#数据类型
变量
弱类型
性质:保存值的占位符
定义:使用var来定义变量,省略它会定义为全局变量(不推荐)
数据类型的分类
简单数据类型:Undefined / NULL / String / Number / Boolean
复杂数据类型:Object
不能创建自定义的数据类型
Undefined类型
值定义后没有初始化
值定义后,使用 undefined 来初始化
值为:undefined
建议:变量定义时尽量给出一个初始值
Null类型
空对象的指针
可用于对象变量的初始化
Null与Undefined的区别
Number(null) = 0, Number(undefined) = NaN
null:没有对象,undefined:缺少值
Boolean类型
只有两个值:false true
作用:条件判断
其它类型,可以使用Boolean()函数转换为布尔值
Boolean()
Number类型
整数和浮点数
三种进制
E表示法
Number.MAX_VALUE / MIN_VALUE / Infinity / -Infinity / isFinite()
NaN / isNaN()
Number()
parseInt()
parseFloat()
String类型
单引号与双引号完全相同
.toString() / String()
Object类型
成员:值或函数方法
无序
常用方法
typeof
是操作符,不是函数
检查数据类型或函数
检查结果:undefined / boolean / string / number / object / function
#操作符
一元操作符:
只能操作一个值的操作符
递增和递减
前置与后置
递增与递减对不同类型的值的影响
一元加减
位操作符:
进行二进制的操作
布尔操作符:
逻辑非
逻辑与
逻辑或
四则运算操作符:
乘
除
求模
加
减
条件操作符:
var a = (a > b ? a : b);
赋值操作符:
=
+=、-=、*=、/=、%=
位操作符的赋值操作:<<=、>>=、>>>=
逗号操作符:
一行语句中执行多个操作
赋值