学习廖大的JS--第一节

1.JS的简介

1、JavaScript和ECMAScript

2. 快速入门

JS可以嵌入到任何位置,但一般放在head里面。代码可以直接写在html中或者链接到外部地址。
使用控制台Console来调试。

2.1 基本语法

分号; 花括号{} 注释// 块注释/*...*/

2.2 数据类型和变量

数据类型:合法的数字,Infinity(无穷大),NaN(not a number)

字符串:字符串是以单引号'或双引号"括起来的任意文本

布尔值:true和false。&&:与运算;||:或运算;!:非运算

比较运算符:==和===:== 会先转化类型再比较,但是经常得到诡异的结果。=== 不会转化,如果类型不同就返回false,相同才比较。由于这个缺陷,因此始终使用===来比较。 能判断NaN的只有isNaN(NaN)这个方法。

null:空值。

数组:使用[]来表示,元素用,隔开。也可使用new Array(1,2,3)来定义,但是强烈建议使用[]来定义。

对象:JavaScript的对象是一组由键-值组成的无序集合。

变量:申明一个变量用var语句,变量可以多次赋值,但是只能申明一次。

strict模式:由于没有强制使用Var声明带来的后果,会使用一个变量成为一个全局变量而造成不可预测的影响。使用"use strict"可以强制使用Var进行声明,不使用运行将报错

2.3 字符串

使用反引号可以表示多行字符串
模板字符串:${变量名} 如果浏览器不支持,则使用+号连接
字符串操作:

1.获取字符串的长度:
var s = 'Hello, world!';
s.length;
2.获取字符串的指定位置:
var s = 'Hello world!';
s[0];
s[7];
3.字符串不可变,赋值也没有效果

4.toUpperCase()可以把一个字符串全部变为大写。

5.toLowerCase()可以把一个字符串全部变为小写。

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

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

2.4 数组

1.使用 length来获取数组的长度。
2.请注意,直接给Array的length赋一个新的值会导致Array大小的变化

大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错。然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。

3.IndexOf
与String类似,Array也可以通过indexOf()来搜索一个指定的元素的位置。

var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10); // 元素10的索引为0
arr.indexOf(20); // 元素20的索引为1
arr.indexOf(30); // 元素30没有找到,返回-1
arr.indexOf('30'); // 元素'30'的索引为2

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

var arr = ['A','B','C','D','E','F','G']
arr.slice(0,3) //从第一个截取到第三个,['A','B','C']

5.push和pop
push()是给末尾追加元素,pop()是删除最后一个元素

6.unshift和shift
unshift()是给数组首部追加元素,shift是删除首部的元素

7.sort
sort()直接调用就进行默认的排序,后面学到函数可以直接自定义排序

8.reverse
reverse是将整个数组颠倒过来

9.splice
splice()是修改数组的万能办法:

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']

10.concat
concat()是将当前数组和另一个数组连接起来:
注:要把数组放在concat里面

var arr = ['a','b','c'];
var added = arr.concat([1,2,3]);
arr; //['a','b','c']
added; //['a','b','c',1,2,3]

11.join
join是将数组里面元素用一个符号链接起来

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

12.多维数组
数组里面嵌套着数组

arr = [1,2,3,['A','B','C']]

2.5 对象

1.对象是由若干个键值对组成
形象是:

var xiaoming = {
    name:'小明',
    age:18,
    score:null
};

2.访问对象的属性:

  • object.prop
  • 对象名[‘键’]

有一些键 是无效的,就需要使用第二种。但是第一种比较方便。

3.判断某属性是否被对象所拥有:

  1. 使用in;//使用in有个问题是如果改属性为继承的,也会得到true结果
  2. 使用hasOwnProperty()方法

2.6 条件判断

1.使用if 的样板:

var age = 20;
if (age >= 18) {
    alert('adult');
} else {
    console.log('age < 18');
    alert('teenager');
}; //不要省略花括号哦

2.使用多条件的:

var age = 3;
if (age >= 18) {
    alert('adult');
} else if (age >= 6) {
    alert('teenager');
} else {
    alert('kid');
}; 

2.7 循环

JS中有两种循环,一种是for,一种是while

1、for循环,通过初始条件、结束条件和递增条件来循环执行语句块:

var x = 0;
var i;
for (i=1; i<=10000; i++) {
    x = x + i;
}
x; // 50005000

for常用来遍历数组

var arr = ['Apple', 'Google', 'Microsoft'];
var i, x;
for (i=0; i<arr.length; i++) {
    x = arr[i];
    alert(x);
}

使用for…in 来对对象进行遍历:

var a = {
    name:'xiaoming',
    age:18,
    city:'beijing',
};
for (var key in o){
    alert(key);
}

由于数组也是一个对象,因此可以使用for遍历出索引号:

var arr = ['A','B','C']
for (var i in arr){
    alert(i); //'0','1','2'
    alert(arr[i]); //'A','B','C'
}// 循环得到的结果是字符串而不是数字

while循环
while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。

do…while循环
最后一种循环是do { … } while()循环,它和while循环的唯一区别在于,不是在每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件。

2.8 Map和Set

map类似于python中的字典(dict)
初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:

var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined

使用set设置键值对,使用has判断是否存在,使用get获取值,使用delete删除键

set和python中的set基本一样,都是不存储值,只有键:
在set中键不可重复

要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set:

var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3

使用add来增加键,是使用delete删除键。

2.9 iterable

遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。
具有iterable类型的集合可以通过新的for … of循环来遍历。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值