资讯专栏INFORMATION COLUMN

数据类型二

gclove / 3414人阅读

摘要:为的值,有可能不是,而是一个字符除了和这几个值会返回,对于其他的数值都会返回无法改变字符串之中的单个字符。属性返回字符串的长度,该属性也是无法改变的。由于对象本身并没有属性,但是运算符会返回,因为这个属性是继承的。

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

返回 undefined 的典型场景

// 变量声明
var i;     
i       // undefined

// 函数没有返回值
function f() {}
f()     // undefined

// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
function fn(val) {
    return val;
}
fn()    // undefined

// 对象没有赋值的属性
var o = new Object();
o.p     // undefined
与number相关的全局方法

1.parseInt()

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

2.parseFloat()

parseFloat 方法用于将一个字符串转为浮点数
parseFloat("3.14")    // 3.14
parseFloat("40 years")// 40
parseFloat("y40")     // NaN
isNaN()
isNaN 只对数值有效,如果传入其他值,会被先转成数值。isNan 为true的值,有可能不是NaN,而是一个字符
isNaN("Hello") <=> isNaN(Number("Hello"))
isFinite()
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true
string
无法改变字符串之中的单个字符。
length属性返回字符串的长度,该属性也是无法改变的。
Base64 转换

btoa() -> 任意值转为 Base64 编码

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    // true
obj.key           // undefined

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

var obj = {};
delete obj.toString    // true
obj.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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97743.html

相关文章

  • 进击的 JavaScript() 之 数据结构

    摘要:的垃圾回收器,进行回收。它们的数据就存放在堆内存中,大小不一定,动态分配内存,可随时修改。引用类型的变量存的是其在堆内存中的地址,值的读取,就是读取这个内存地址中储存的内容。 这东西还是很重要的,你要是搞懂了,就会去除很多困惑,比如不知道大家在学习js 的时候,有没有对 基础类型 和 引用类型 感到困惑过,两者之间 表现的不同之处。 js 不同其他编程语言,它是脚本语言。所以,它的数...

    BlackFlagBin 评论0 收藏0
  • ❤️爆肝十万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

    文章目录 强烈推荐系列教程,建议学起来!! 一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置 4.2手动添加镜像源4.3永久配置镜像源 五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件 六.美女背景七.自定义脚本开头八、这个前言一定要看九、pyt...

    booster 评论0 收藏0
  • 数据类型

    摘要:定义什么是数据类型数据类型,就是将数据按照某一规则进行区别时所定义的分类标签。中的数据类型为什么称为弱类型语言中变量是没有类型的,只有值才有。有哪些数据类型在中,共有七种数据类型,其中,六种是基本原始类型,一种是对象复合引用类型。 showImg(https://segmentfault.com/img/remote/1460000017215604); 定义 1. 什么是数据类型? ...

    Tecode 评论0 收藏0
  • 数据类型

    摘要:中的数据类型为什么称为弱类型语言中变量是没有类型的,只有值才有。有哪些数据类型在中,共有七种数据类型,其中,六种是基本原始类型,一种是对象复合引用类型。因此,我们可以写一个函数,用来精确检测类型。 showImg(http://upload-images.jianshu.io/upload_images/7803415-2bbe6fd5fdeebe0d.jpg?imageMogr2/a...

    CarlBenjamin 评论0 收藏0
  • 33 个 js 核心概念():数据类型

    摘要:举个例子在上面的例子可以看到,我们声明是一个数字,但是我们在之后将的值又改成了字符串和布尔值后面会讲这些类型。基本类型字符串表示一个字符串,如。因此,我们可以写一个函数,用来精确检测类型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定义 1. 什么是数据类型? 数据类型,就是将...

    QiShare 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<