JavaScript复习(1)-基础语法

javaScript-数据类型和变量

1、比较符
第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

但是在判断类型时最好使用方法:isNaN()、isString()

2、数组创建
通过1

new Array(1,2,3);

但是建议使用:

var arr = [1,2,3,1.2,'Hello',null.true];

3、JS的对象,由键值对组成,一个对象包含了属性和方法,相当于一个物体的特征和功能。

var person = {
	name:'Bob',
	age:20,
	tages:['js','web','mobile'],
	city:'Beijing',

}

对象的键值对的值可以是任意类型。对象名.属性名就可以获取值。

4、JS的变量是动态的,也就是不许要固定声明是什么类型,更加灵活,而静态的变量则必须声明固定类型。
如果一个变量不使用var来声明就会成为全局变量,这回导致出现两个相同名称的全局变量是出现错误。
特殊情况:
在JS代码前声明:‘use strict’
强制声明var,否则报错,但是该语句会有部分浏览器不支持,不支持的会把他看成字符串。

JavaScript-字符串

1、字符串连接
方法1:用+:var msg=‘你好’+name+‘你今年’+age+‘岁了‘;

方法2

ES6以上:var msg=‘你好,&{name},&你今年&{age}岁了‘;

2、操作字符串
其实字符串也可以像数组那样进行部分操作如:.length、每个字符都有对应的索引可以获取,但是不可以修改内容。
方法:
(1):toUpperCase():字符串全部变为大写
(2):toLowerCase():小写
(3):indexof('neir'):搜索指定字符串出现的位置
(4):substring(0,3):返回指定索引区间的字符串。

JavaScript-数组

1、数组可以通过索引赋值修改数组内容,索取长度以及对数组长度进行指定可以用.length方法,但是不能超过范围,否则会引起大小变化

但是不建议直接修改大小,需要注意越界问题。
2、方法:(1)indexOf()
(2)slice():相当于上述的substring()
(3)push('string','string'):末尾添加元素,pop()末尾删除最后一个元素,多次调用对次删除。
(4)shift():头部添加元素,unshift():头部删除元素,与上述元素相似
(5)sort():对数组进行排序var arr = [‘B’, ‘C’, ‘A’];顺序排
arr.sort();
arr; // [‘A’, ‘B’, ‘C’]
(6)revers():倒序排列
(7)splice(2,3,“C”,“vv”):从指定索引的位置删除并添加值。也可以不添加新的值,只删除。()中的值表示从2开始删

除3个元素,3变成0,则没有删除的元素。
(8)concat():将两个数组进行连接合并成新的数组。

						var arr = ['A', 'B', 'C'];
						var added = arr.concat([1, 2, 3]);
							added; // ['A', 'B', 'C', 1, 2, 3]
							arr; // ['A', 'B', 'C']

虽然组合成了新的数组,但是原数组arr依然存在且不变。

(9)`join(‘符号’):`将数组中的字符串用指定的符号连接起来并返回新的字符串。若数组内存在非字符串则会转换成字符串再连接


3、多维数组

var arr = [[1, 2, 3], [400, 500, 600], '-'];

索引:var x=arr[x][y];

JavaScript-对象:

1、Js的对象是一种无序的集合数据类型,由键值对组成,键值对由,号分割末尾不用添加。若含有特殊字符key的命名需要引号包裹,切

key都是字符串,而value可以使任何值。若访问了不存在的值,则会返回undefined.

2、判断对象中是否存在属性用in操作
‘name’in obj;//true-false
注意:还有一种情况即使当前对象中没有该属性也会显示true,因为该对象可能继承了父对象(object)的属性。
因此为了避免受到继承干扰,可以使用:obj.hasOwnProperty()方法判断

JavaScript-条件判断

1、if/if-else/if-else-if

JavaScript-循环

1、for循环:需要已知循环的初始和结束条件
2、for-in循环
for…in循环是for循环的变体可把对象的属性依次遍历出来。
也可以通过hasOwnProperty方法过滤掉继承属性

var o = {
    name: 'om',
    age: 10,
    city: 'FuJian'
};
for (var key in o) {
    if (o.hasOwnProperty(key)) {
        console.log(key); // 'name', 'age', 'city'
    }
}

3、注意Array也是属于对象,而使用for-in对数组进行循环得到的值是string类型。
4、while:只需要一个判断条件,满足就循环。
5、do-while:与上一个的区别是,需要先执行一段指令再去判断是否满足条件。

JavaScript-Map和Set

1、Map和Set是ES6的新的数据类型,Map是一组键值对的结构,其查找速度很快。主要是为了解决JS的对象键只能使用字符串。
对比:
通常:

		var names = ['Michael', 'Bob', 'Tracy'];	
		var scores = [95, 75, 85];
	数据过多会导致耗时长
Map:var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
	不会影响速度

2、初始化Map需要一个二维数组

	var m=new Map();
	m.set('Adam', 67);
	m.set('Adam', 88);
	m.get('Adam'); // 88

由于一个键只会对应一个value,所以后设置的会替换前面设置的。

3、Set与Map相似。语法为:

	var s = new Set();
	var s1 = new Set([1,2,3]);

同样哟个键对应一个值,添加同名的键也只会保留一个。
s.add();添加——s.dalete();删除

JavaScript-iterable类型

1、由于遍历新标准Map和Set不能像数组一样使用下标,因此ES6标准对应该类型,其中Array/Map/Set都可以使用iterable的

for--of来循环。格式:
var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Array
    console.log(x);
}
for (var x of s) { // 遍历Set
    console.log(x);
}
for (var x of m) { // 遍历Map
    console.log(x[0] + '=' + x[1]);
}

2、for–of还有一个特别重要的优势就是修复了for–in,for–in遍历时会输出数组索引以及额外添加的字符串。使用for–of则是直接遍历出数组值。

3、更好的方法是使用iterable内置的forEach()方法。
code:

	a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    console.log(element + ', index = ' + index);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值