美文网首页
2018-11-14 JavaScript数据类型与操作等基本概

2018-11-14 JavaScript数据类型与操作等基本概

作者: 假装热爱学习 | 来源:发表于2018-11-30 13:28 被阅读0次

数据类型

Undefined/Null/Boolean/Number/String五种简单数据类型。
使用typeof操作符可以返回变量或操作数的类型说明字符串:

字符串 含义
undefined 值未定义
boolean 值是布尔值
string 值是字符串
number 值是数值
object 值是对象或null
function 值是函数

Undefined类型(只有一个值undefined)

使用var声明变量但未初始化时此变量的值就是undefined。

Null类型(只有一个值null)

null值表示一个空对象指针,故使用typeof检测是返回object。
一般声明变量用于保存对象时初始化为null,另外,null == underfined的操作返回true。

Boolean类型(true和false)

存在函数Boolean(变量名),转换规则:

数据类型 转为true 转为false
String 任何非空字符串 空字符串
Number 任何非零数字值 0和NaN
Object 任何对象 null
Undefined not applicable(n/a) undefined
Boolean true false

Number类型(整数和浮点数)

十进制
八进制第一位为0,然后是0-7,超出范围则当十进制。严格模式下八进制无效
十六进制以0x开头

  • 不要以浮点数运算结果作为判断条件,因为计算精度存在误差
  • 内存限制,存在数值范围,超出范围则为Infinity或-Infinity,即正负无穷。
  • NaN:任何数值除以0返回NaN,NaN不等于任何值,不等于自身。isNaN(变量名)不能转换为数值则为真。
  • 数值转换函数:Number(变量)/parseInt(变量,可选用于指定进制基数)/parseFloat(变量)分别有具体的转换规则。

String类型

toString()方法。

Object类型

Object的每个实例对象存在的属性和方法:

Constructor 保存着用于创建当前对象的函数。
hasOwnProperty(propertyName) 检查给定的属性在当前实例对象中是否存在
isPrototyOf(object) 检查传入的对象是否是另一个对象的原型
propertyIsEnumerable(propertyName) 检查给定的属性是否能够作为for-in语句来枚举
toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应
toString() 返回对象的字符串表示
valueOf() 返回对象的字符串、数值或布尔值

操作符

一元操作符(只操作一个值)

  • 递增和递减,其实和c一样吧
  • 一元加和减 ,用于算术运算或转换数据类型
  • 位操作符:按位非(操作数的复值减一)~、按位与&、按位或|、按位异或^、左移<<、有符号的右移>>(保留符号位)、无符号的右移>>>
  • 布尔操作符:逻辑非、逻辑与、逻辑或
例如逻辑非对应的规则 结果
alert(!false) false
alert(!"string") false
alert(!"") true
alert(!0) true
alert(!123456) false
alert(!NaN) true
  • 乘性操作符:加减乘除
  • 关系操作符
  • 相等操作符
  • 条件操作符
  • 赋值操作符
  • 逗号操作符
    (以上这些操作符一般都有对应的规则)

语句

  • if语句
  • do-while语句:循环体中语句至少被执行一次
  • while语句
  • for语句
  • for-in语句 可以用来枚举对象的属性等
//枚举BOM中window对象的所有属性
for(var propName in window){
      document.write(propName);
}
//最后先确认被循环的对象值不是null或undefined。
  • label语句
    这个是可以在代码中添加标签,一遍将来使用的样子。
//eg://标签由break或continue引用 
start:for(var i=0;i<count;i++){alert(i)}
  • break和continue语句
  • with语句 将代码的作用域设置到一个特定的对象中。大量使用会导致性能下降。严格模式下不允许使用。
  • switch语句 特色是switch可以是任何数据类型:字符串、对象等,case甚至可以是变量或表达式。比较值时使用的是全等操作符,因此不会有类型转换。

函数

function关键字
不必定义是否返回值
return可以不烦会任何值,自动返回undefined
严格模式有关键字限制
命名参数只提供便利,不是必须。因为以数组的形式传递,可以用arguments对象像数组一般访问。类似重载,但ECMAscript没有重载啊。
没传递值的命名参数自动赋予undefined
严格模式对arguments对象有限制,例如设置了arguments[1]=10,对应位置的命名参数没有被传值的话还是undefined。
同名后定义的函数覆盖先定义的函数啊,没法重载。

相关文章

网友评论

      本文标题:2018-11-14 JavaScript数据类型与操作等基本概

      本文链接:https://www.haomeiwen.com/subject/ahksfqtx.html