美文网首页
初学数据类型(2)

初学数据类型(2)

作者: 注定只是过客 | 来源:发表于2019-05-10 15:05 被阅读0次

字符串

字符串默认只能写在一行内,分成多行将会报错。
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。

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

btoa():任意值转为 Base64 编码
atob():Base64 编码转为原来的值
//不适合非 ASCII 码的字符,若要使用必须先经过转码

function b64Encode(str) {
  return btoa(encodeURIComponent(str));
}

function b64Decode(str) {
  return decodeURIComponent(atob(str));
}

b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"

转义

反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。

  • \0 :null(\u0000)
  • \f :换页符(\u000C)
  • \n :换行符(\u000A)
  • \r :回车键(\u000D)
  • \t :制表符(\u0009)
  • ' :单引号(\u0027)
  • " :双引号(\u0022)
  • \ :反斜杠(\u005C)

反斜杠的三种特殊用法:
1.反斜杠后面紧跟三个八进制数(000到377),代表一个字符。
2.\x后面紧跟两个十六进制数(00到FF),代表一个字符。
3.u后面紧跟四个十六进制数(0000到FFFF),代表一个字符。

字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。但是不能像数组一样改变和增删。

对象

对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
对象的所有键名都是字符串。如果键名是数值,会被自动转为字符串。如果不是纯数字,且不符合标识符的命名规范,则会报错。

链式引用

对象属性的值还是一个对象,就形成了链式引用。
属性可以动态创建,不必在对象声明时就指定。

读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。

数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。

查看一个对象本身的所有属性,可以使用Object.keys方法。

删除对象属性

delete命令用于删除对象的属性,删除成功后返回true。

delete obj.p // true

删除一个不存在的属性,delete不报错,而且返回true。
该属性存在,且不得删除,delete命令会返回false。
delete命令只能删除对象本身的属性,无法删除继承的属性。

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

in 运算符

in运算符用于检查对象是否包含某个属性,如果包含就返回true,否则返回false。
in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的。就像上面代码中,对象obj本身并没有toString属性,但是in运算符会返回true,因为这个属性是继承的。
对象的hasOwnProperty方法判断一下,是否为对象自身的属性。

ar obj = {};
if ('toString' in obj) {
  console.log(obj.hasOwnProperty('toString')) // false
}

for...in 循环

for...in循环用来遍历一个对象的全部属性。

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

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

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

只想遍历对象自身的属性,所以使用for...in的时候,应该结合使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

var person = { name: '老张' };

for (var key in person) {
  if (person.hasOwnProperty(key)) {
    console.log(key);
  }
}// name

with 语句

with (对象) {
  语句;
}

作用是操作同一个对象的多个属性时,提供一些书写的方便。
如果with区块内部有变量的赋值操作,必须是当前对象已经存在的属性,否则会创造一个当前作用域的全局变量。

相关文章

  • 初学数据类型(2)

    字符串 字符串默认只能写在一行内,分成多行将会报错。如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。 le...

  • js中typeof返回的数据类型有哪些

    对于js初学者来说,js的数据类型可以简单地区分为简单数据类型和复杂数据类型。简单数据类型包括以下这些:numbe...

  • python基础-数据类型

    编程语言之间总有互通性,数据类型就是其中的一种,下面是给初学者的笔记,python的数据类型。说数据类型前,回忆一...

  • 初学数据类型(1)

    JavaScript数据类型 数值:整数和小数 字符串: 布尔值:true和false undefined:表示未...

  • 关于Java中的double类型数据

    在初学Java的时候,一般我们都会从基本的数据类型开始学习,而在基本数据类型中,我认为double类型是比较难理解...

  • 初学swift 常用数据类型

    整数整数就是没有小数部分的数字,如22,-34整数可以是有符号正、负、零 或者无符号正、零。 swift 提供了8...

  • swift初学之数据类型

    swift中有两种数据类型,let 和var。其中let为常量,定义数据后不可进行更改,var为变量,定义数据后可...

  • hive数据类型

    1. hive的数据类型 Hive的内置数据类型可以分为两大类:(1)、基础数据类型;(2)、复杂数据类型 2. ...

  • Swift学习 - 字符串操作

    前言 字符串是所有编程语言中的基本数据类型,也是使用最为频繁的一种数据类型,我在初学Swift的时候,经常会出现不...

  • Python索引(一)

    前言   Python及其numpy、pandas几个库里数据类型的索引真的是很多陷阱,初学者往往容易混淆。本篇尽...

网友评论

      本文标题:初学数据类型(2)

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