摘要:为的值,有可能不是,而是一个字符除了和这几个值会返回,对于其他的数值都会返回无法改变字符串之中的单个字符。属性返回字符串的长度,该属性也是无法改变的。由于对象本身并没有属性,但是运算符会返回,因为这个属性是继承的。
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") // NaNisNaN()
isNaN 只对数值有效,如果传入其他值,会被先转成数值。isNan 为true的值,有可能不是NaN,而是一个字符
isNaN("Hello") <=> isNaN(Number("Hello"))isFinite()
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回truestring
无法改变字符串之中的单个字符。Base64 转换
length属性返回字符串的长度,该属性也是无法改变的。
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
摘要:的垃圾回收器,进行回收。它们的数据就存放在堆内存中,大小不一定,动态分配内存,可随时修改。引用类型的变量存的是其在堆内存中的地址,值的读取,就是读取这个内存地址中储存的内容。 这东西还是很重要的,你要是搞懂了,就会去除很多困惑,比如不知道大家在学习js 的时候,有没有对 基础类型 和 引用类型 感到困惑过,两者之间 表现的不同之处。 js 不同其他编程语言,它是脚本语言。所以,它的数...
文章目录 强烈推荐系列教程,建议学起来!! 一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置 4.2手动添加镜像源4.3永久配置镜像源 五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件 六.美女背景七.自定义脚本开头八、这个前言一定要看九、pyt...
摘要:中的数据类型为什么称为弱类型语言中变量是没有类型的,只有值才有。有哪些数据类型在中,共有七种数据类型,其中,六种是基本原始类型,一种是对象复合引用类型。因此,我们可以写一个函数,用来精确检测类型。 showImg(http://upload-images.jianshu.io/upload_images/7803415-2bbe6fd5fdeebe0d.jpg?imageMogr2/a...
摘要:举个例子在上面的例子可以看到,我们声明是一个数字,但是我们在之后将的值又改成了字符串和布尔值后面会讲这些类型。基本类型字符串表示一个字符串,如。因此,我们可以写一个函数,用来精确检测类型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定义 1. 什么是数据类型? 数据类型,就是将...
阅读 2843·2023-04-26 01:02
阅读 1863·2021-11-17 09:38
阅读 791·2021-09-22 15:54
阅读 2899·2021-09-22 15:29
阅读 888·2021-09-22 10:02
阅读 3432·2019-08-30 15:54
阅读 2007·2019-08-30 15:44
阅读 1585·2019-08-26 13:46