javaScript Day01

1.概述

1.1什么是JavaScript

JavaScript是一门世界上最流行的脚本语言

一个合格的后端人员,必须精通JavaScript

1.2历史

https://blog.csdn.net/kese7952/article/detalls/79357868

ECMAScript它可以理解为是JavaScript的一个标准

最新版本已经更新到es6版本 但是大部分浏览器还只停留在5版本

开发环境----线上环境版本不一致

2.入门

2.1引入JavaScript

1.内部标签

<script>
    
</script>

2.外部引入

abs.js

<script src='abs.js'></script>

注意script标签必须成对出现<script></script>

2.2基本语法入门

JavaScript严格区分大小写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        // 定义变量:var 变量名 = 变量值;
        var score = 71;
        var name = "clm";
        // 条件控制
        if(score>60 && score<70){
            alert("60-70")
        }else if(score>70 && score<80){
            alert("70-80")
        }else{
            alert("other")
        }
    </script>
</head>
<body>
​
</body>
</html>

console.log(sore) 在浏览器的控制台打印变量 相当于system.out.print();

2.3数据类型

数值、文本、图像、音频、视频。。。

变量

var 变量名 = 值;

Number:JS不区分小数,整数

123//整数
123.123//浮点数
1.123e3//科学计数法
-99//负数
NaN//not a number
Infinity//表示无限大
​

字符串:

'abc';“abc”

布尔值:

true false

逻辑运算

&& 两个都为真
|| 一个为真,结果为真
! z

比较运算符

=    
==   等于(类型不一样,值一样,也会判断为true)
===  绝对等于(类型一样,值一样,结果为true)

这是一个JS的缺陷,坚持不要使用==比较

须知:

1.NaN===NaN,这个与所有值都不相等,包括自己

2.只能通过isNaN(NaN)来判断这个数是否是NaN

浮点数问题

console.log((1/3===1-2/3))

尽量避免使用浮点数进行运算,存在精度问题!

uull和undefined

null空

undefined未定义

数组

Java中的数组必须是相同类型的对象,JS中不需要这样!

var arr = [1,2,3,4,'hello',null,true]

取数组下标如果越界了,就会undefined

对象

对象是大括号{},数组是中括号[],每个属性之间用逗号隔开,最后一个不用

var person = {
    name:"clm",
    age:3,
    tags:['js','1','web']
}

取对象的值person.name person.age

2.4严格检查模式

‘ user strict ’ ; ---------严格检测模式,前提支持es6语法,预防JS的随意性导致的一些问题

1.必须写在JavaScript的第一行

2.局部变量使用 let 去定义

<script>
    'user strict';
	let i = 1;  
</script>

3.数据类型

3.1字符串

1.正常字符就用单引号和双引号包裹

2.注意转义字符 \

\'
\n
\t
\u4e2d \#### unicode字符
\x41 ascll字符

3.多行字符串编写 `(tab键上面)

var msg = `hello 
world
你好`

4.模板字符串

let name = 'clm';
let age = 3;
let msg = `你好呀!${name}`

5.字符串长度

str.length

6.字符串的可变性,不可变

7.大小写转换

//注意这里是方法,不是属性了
student.toUpperCase()
student.toLowerCase()

8.student.indexOf('t')

9.substring

[)
 student.substring(1)//从第一个字符串截取到最后一个字符串
 student.substring(1,3)//[1,3)

3.2数组

Array可以包含任意的数据类型

var arr = [1,2,3,4,5]

1.长度

arr.length

注意:给arr.length赋值,数组大写会发生变化,如果赋值过小,元素就会丢失。

2.indexOf,通过元素获得小标索引

arr.indexOf(2)
1

arr.indexOf(2)和arr.indexOf(“2”)是不一样的

3.slice() 截取Array的一部分,返回一个数组,类似于String中的subString

4.push()和pop()

push:压入到尾部
pop:弹出尾部的一个元素

5.unshift() 和shift() 头部

unshift():压入到头部
shift():弹出头部的一个元素

6.排序sort()

["B","A","c"]
arr.sort();
["A","B","c"]

7.元素反转reverse()

["B","A","c"]
arr.sort();
["C","A","B"]

8.concat()拼接

["B","A","c"]
arr.concat([1,2,3]);
["B","A","c",1,2,3]
arr
["B","A","c"]

注意:concat()并没有修改数组,只是会返回一个新的数组

9.连接符join

打印拼接数组,使用特定的字符串连接

["B","A","c"]
arr.join('-')
"B-A-C"

10.多维数组

arr = [[1,2],[3,4],["5","6"]];
arr[1][1]
4

3.3流程控制

1、if判断

var age=3;
if(age>3){
    alert("haha")
}else if(age<5){
    alert("ccc")
 else{
        alert("bbb");
    }
}

2、while循环,避免出现死循环

while(age<100){
    age=age+1;
    console.log(age)
}
​
do{
    age=age+1;
    console.log(age)
}while(age<100)

3、for循环

for(let i = 0; i<100; i++){
    console.log(i)
}

4、forEach循环 ES5.1引入

var age =[1,2,3,4,5,6,7,8]
//函数
age.forEach(function (value)){
            console.log(value)
            }

3.4 Map和Set

Map

```javascript
//ES6 Map
        var map = new Map([['tom',100],['jack',90],['clm',80]]);
        var name = map.get('tom');//通过key获得value,值100
        map.set('zm',70);//新增
        map.delete('tom')//删除
```

Set:无序不重复集合

```javascript
set.add(2);//添加
set.delete(1);//删除
console.log(set.has(3));//是否包含某个元素
```

### 3.5 iterator

ES6 新引入

遍历数组:

```javascript
var arr = [3,4,5]
for(var x of arr){
    console.log(x)
}
```

遍历Map:

```javascript
var map = new Map([['tom',100],['jack',90],['clm',80]]);
for(var x of map){
    console.log(x)
}
```

遍历Set:

var set = new Set([3,45,5])
for(var x of set){
    console.log(x)
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值