博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据类型二
阅读量:6964 次
发布时间:2019-06-27

本文共 2541 字,大约阅读时间需要 8 分钟。

null, undefined

null 和 undefined

null 是一个表示为“空”的对象,转为数值时为0;
undefined是一个表示"此处无定义"的原始值,转为数值时为NaN

返回 undefined 的典型场景

// 变量声明var i;     i       // undefined// 函数没有返回值function f() {}f()     // undefined// 调用函数时,应该提供的参数没有提供,该参数等于 undefinedfunction fn(val) {    return val;}fn()    // undefined// 对象没有赋值的属性var o = new Object();o.p     // undefined

与number相关的全局方法

1.parseInt()

parseInt() 方法用于将一个字符串转为一个整数,默认是十进制整数
parseInt('10.33')    // 10parseInt('10', 8)    // 8

2.parseFloat()

parseFloat 方法用于将一个字符串转为浮点数
parseFloat('3.14')    // 3.14parseFloat('40 years')// 40parseFloat('y40')     // NaN

isNaN()

isNaN 只对数值有效,如果传入其他值,会被先转成数值。isNan 为true的值,有可能不是NaN,而是一个字符
isNaN('Hello') <=> isNaN(Number('Hello'))

isFinite()

除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true

string

无法改变字符串之中的单个字符。
length属性返回字符串的长度,该属性也是无法改变的。

Base64 转换

  1. btoa() -> 任意值转为 Base64 编码
  2. atob() -> Base64编码转为原来的值
btoa('Hello World')         // "SGVsbG8gV29ybGQ="atob('SGVsbG8gV29ybGQ=')    // "Hello World"

非 ASCII 码 Base64 转换

要将非 ASCII 码字符转为 Base64 编码,必须中间插入一个转码环节。
function base64Encode(str) {    return btoa(encodeURIComponent(str));}function base64Decode(str) {  return decodeURIComponent(atob(str));}base64Encode('你好')    // "JUU0JUJEJUEwJUU1JUE1JUJE"base64Decode('JUU0JUJEJUEwJUU1JUE1JUJE')    // "你好"

object

属性的查看

查看一个对象本身的所有属性,可以使用Object.keys方法
var obj = {    key1: 1,    key2: 2};Object.keys(obj);    // ['key1', key2]

属性的删除:delete命令

delete命令用于删除对象的属性,删除成功后返回true
var obj = { key: 1 }delete obj.key    // trueobj.key           // undefined

delete 命令只能删除对象本身的属性,无法删除继承的属性

var obj = {};delete obj.toString    // trueobj.toString           // ƒ toString() { [native code] }

toString是对象obj继承的属性,虽然delete命令返回true,但该属性并没有被删除,依然存在。这个例子还说明,即使delete返回true,该属性依然可能读取到值。

in 运算符

in 运算符用于检查对象是否包含某个属性,如果包含返回true
var obj = { key: 1 }'key' in obj         // true'toString' in obj    // true

in运算符不能识别哪些属性是对象自身的,哪些属性是继承的。由于对象obj本身并没有toString属性,但是in运算符会返回true,因为这个属性是继承的。这是可以使用对象的hasOwnProperty方法判断一下,是否为对象自身的属性。

属性的遍历:for...in循环

for...in循环用来遍历一个对象的全部属性。
var obj = { a: 1, b: 2, c:3 };for (var i in obj) {    console.log('键名:', i + '; 键值:' + obj[i]);}// 键名: a; 键值:1// 键名: b; 键值:2// 键名: c; 键值:3

for...in循环有两个使用注意点。

  • 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
  • 它不仅遍历对象自身的属性,还遍历继承的属性。

对象obj继承了toString属性,该属性不会被for...in循环遍历到,因为它默认是“不可遍历”的。

如果继承的属性是可遍历的,那么就会被for...in循环遍历到。但是,一般情况下,都是只想遍历对象自身的属性,所以使用for...in的时候,应该结合使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

var obj = { name: 'wade' };for (var key in obj) {    if (obj.hasOwnProperty(Key)) {        console.log(key);    }}// name

转载地址:http://hhmil.baihongyu.com/

你可能感兴趣的文章
eclipse 调试 jdk 看不到变量的值
查看>>
如何解决分配到Autoconfiguration IPV4 地址
查看>>
.NET 远程操作MSMSQ无权限或操作出错问题解决
查看>>
浅谈企业信息泄密:信任不存,效益焉在?
查看>>
我的友情链接
查看>>
windows 上使用wget
查看>>
Android震动
查看>>
Linux的用户和用户组管理
查看>>
docker在centos7上安装私服镜像各种操蛋修复
查看>>
关于Logstash中grok插件的正则表达式例子
查看>>
数据挖掘中的KNN
查看>>
堪比锦衣卫的服务追踪【我身边的戴尔企业级解决方案】
查看>>
漫谈vfp程序界面及设计观
查看>>
性能魔方mmTrix:应用性能与用户体验“石器时代”终结者
查看>>
1.大道至简的数据处理工具(Power Query)
查看>>
python第二阶段第五天额外增加
查看>>
开始写博客啦
查看>>
Cisco_IP_Communicator_软电话配置过程全解
查看>>
友元函数的产生和理解
查看>>
系统运维问题诊断集合
查看>>