Node.js学习笔记(二)

Node.js学习笔记(二)

JavaScript数据类型

  • 原始类型 (值类型不可变)
    • 数字
    • 布尔值
    • 字符串
  • 对象类型(可变的)引用类型
    • 原始类型的包装对象
    • 语言内置对象(数组、函数、日期和正则表达式等)
    • 宿主对象

    • 用户定义
  • 特殊值
    • null(空)
    • undefined(未定义)表示一种出乎意料的错误空缺
    • Symbol(唯一值ES6),有Symbol函数生成(不加new)
P.S. java自出差类型不可变

所有字符串都是不可变的,因为分配的时候,字符串空间分配后就不可变

判断数据类型typeof

typeof 1	//number
typeof true	//boolean
...
typeof null //object 这是一个bug
typeof undefined //undefined

原始类型特性

  • 按值进行比较

  • 属性不能被改变,增加和删除

    • var s = "abc";
      s.length = 1;
      s.length //3 属性不能被修改
      
  • 原始类型都有相应的构造函数,能生成原始类型的包装对象

    • 数字 Number()

原始类型的包装对象

  • 原始类型的包装对象是对象类型,更对应原始类型值不相等
  • 原始类型没有私有方法,但可以从对应的包装器借调方法
  • 包装对象构造函数调用时不加new(构造函数变普通函数),则变为类型转换函数
Number('9')===9	//true
new Number(9) === 9 //false

数字类型

js统一采用754标准,精度范围就那样,数字表现弱化。

算数运算

数字类型包装对象Number

Math对象

  • 一个js内置对象(库)
  • 属性
    • Math.E 自然对象
    • Math.Pi
  • 方法
    • Math.abs() //绝对值
    • Math.cell() //向上取整
  • 方法(ES6扩展)

与数值相关的一些全局方法(重要的常用方法)

  • isFinit方法返回一个布尔值,检查某个值是不是正常数值。
  • parseInt方法用于字符串转为整数
    • parseInt(1,23)

布尔类型

  • 包装对象Boolean

字符串类型

  • js字符串没有字符类型
  • 单引号或者双引号表示字符串

模版字符串

  • ES6新增更加方便的摸板字符串,用反引号(`)标识
  • 可以表示多行字符串,所有的空格和缩紧都会保留
  • 可以用${ }嵌入表达式
`${x} + ${y} = ${x+y}=${sum(x,y)}`

用途:可以用于生成网页

标签模版
  • 在模版字面量前添加标签(实际是函数)

    myTagmy string

  • 标签函数的实际形式

function tag(模版字符串组,各个插入值,...){
	//	返回一个字符串
}

tag `hello ${a+b} world{a*b} `
  • 标签常用于过滤HTML字符串,防止用户输入内容和多语言转换(国际化处理)
var sender = `you&me`

function SafeHtml(){
  
}

var html = SafeHtml`<p>用户${sender}评论${commender}</p>`;

字符串类型包装对象String

  • String的所有方法都不改变初始的字符串,涉及修改内容的都会返回一个新的字符串对象
  • length方法判断长度
  • indexOf,lastIndexOf,位置,尾部匹配
  • trim去除两端的
  • match
  • search
  • replace
  • inculde()是否包含
  • repeat()重复次数

类型转换–隐式转换

  • 当使用的类型和预期类型不一样时会进行自动的类型转换
  • 转换为字符串,主要发生在加法,字符串+非字符串,会统一转化为字符串,因为字符串出错几率小

类型转换–显式转换

  • 转换为布尔值,用Boolean函数,规则同隐式转换
  • 转为字符串 String方法
  • 转为数值 Number函数,以可以parseInt和parseFloat函数

布尔运算

  • 不等式不能连写
  • 短路求值
if(b&&a/b>2){}	//避免除0		
if(a==0||b=func())	//避免不必要的求值

位运算

  • 只对整数起作用,但是js却没有整数,都是64位浮点数。
  • 做位运算的时候用64位模拟32位整数
  • 左右移
    • ^ 异或
    • & 与
    • | 或
    • ~ 非
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值