javascript代码实例教程-js基础知识之js的对象定义、字符串的一些常用方法

小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

js的对象定义

var person = {

name: ‘Bob’,

age: 20,

tags: [‘js’, ‘web’, ‘mobile’],

city: ‘Beijing’,

hasCar: true,

zipcode: null

};

在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,

将造成变量i互相影响,产生难以调试的错误结果。

strict模式

在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

启用strict模式的方法是在JavaScript代码的第一行写上:

‘use strict’;

转义字符/可以转义很多字符,比如/n表示换行,/t表示制表符,字符/本身也要转义,所以/表示的字符就是/

由于多行字符串用/n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号 … 表示:

这是一个

多行

字符串;

注意:反引号在键盘的ESC下方,数字键1的左边

需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果

字符串的一些常用方法:

toUpperCase()把一个字符串全部变为大写

toLowerCase()把一个字符串全部变为小写

indexOf()会搜索指定字符串出现的位置

substring()返回指定索引区间的子串

数组

请注意,直接给Array的length赋一个新的值会导致Array大小的变化

请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化

Array也可以通过indexOf()来搜索一个指定的元素的位置

slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array

注意到slice()的起止参数包括开始索引,不包括结束索引

如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array

arr.slice(3); // 从索引3开始到结束

push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉

如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉

sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序

reverse()把整个Array的元素给掉个个,也就是反转

splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

var arr = [‘Microsoft’, ‘Apple’, ‘Yahoo’, ‘AOL’, ‘Excite’, ‘Oracle’];

// 从索引2开始删除3个元素,然后再添加两个元素:

arr.splice(2, 3, ‘Google’, ‘Facebook’); // 返回删除的元素 [‘Yahoo’, ‘AOL’, ‘Excite’]

arr; // [‘Microsoft’, ‘Apple’, ‘Google’, ‘Facebook’, ‘Oracle’]

// 只删除,不添加:

arr.splice(2, 2); // [‘Google’, ‘Facebook’]

arr; // [‘Microsoft’, ‘Apple’, ‘Oracle’]

// 只添加,不删除:

arr.splice(2, 0, ‘Google’, ‘Facebook’); // 返回[],因为没有删除任何元素

arr; // [‘Microsoft’, ‘Apple’, ‘Google’, ‘Facebook’, ‘Oracle’]

concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array

请注意,concat()方法并没有修改当前Array,而是返回了一个新的Array

join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串

对象

var xiaoming = {

name: ‘小明’,

birth: 1990,

school: ‘No.1 Middle School’,

height: 1.70,

weight: 65,

score: null

}

JavaScript用一个{…}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,,

如果加了,有的浏览器(如低版本的IE)将报错。

访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用”括起来

xiaohong的属性名middle-school不是一个有效的变量,就需要用”括起来。访问这个属性也无法使用.操作符,必须用[‘xxx’]来访问

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性

xiaoming.age; // undefined

xiaoming.age = 18; // 新增一个age属性

xiaoming.age; // 18

delete xiaoming.age; // 删除age属性

如果我们要检测xiaoming是否拥有某一属性,可以用in操作符(’name’ in xiaoming; // true)

不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的

因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性

要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法

var a = [‘A’, ‘B’, ‘C’];

for (var i in a) {

alert(i); // ‘0’, ‘1’, ‘2’

alert(a[i]); // ‘A’, ‘B’, ‘C’

}

请注意,for … in对Array的循环得到的是String而不是Number

Map

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉

Set

Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key

重复元素在Set中自动被过滤

通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果

通过delete(key)方法可以删除元素

iterable

for … of循环则完全修复了for in问题,它只循环集合本身的元素。更好的方式是直接使用iterable内置的forEach方法,

它接收一个函数,每次迭代就自动回调该函数

定义函数

function abs(x) {

if (typeof x !== ‘number’) {

throw ‘Not a number’;

}

if (x >= 0) {

return x;

} else {

return -x;

}

}

关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。

arguments类似Array但它不是一个Array

利用arguments,你可以获得调用者传入的所有参数。也就是说,即使函数不定义任何参数,还是可以拿到参数的值

rest参数只能写在最后,前面用…标识,从运行结果可知,传入的参数先绑定a、b,

多余的参数以数组形式交给变量rest,所以,不再需要arguments我们就获取了全部参数

由于JavaScript的变量作用域实际上是函数内部,我们在for循环等语句块中是无法定义具有局部作用域的变量的

关键字let,用let替代var可以申明一个块级作用域的变量

ES6标准引入了新的关键字const来定义常量,const与let都具有块级作用域

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典为你提供优质服务
脚本宝典 » javascript代码实例教程-js基础知识之js的对象定义、字符串的一些常用方法

发表评论

提供最优质的资源集合

立即查看 了解详情