JavaScript快速入门

JavaScript

最流行的脚本语言。

语法跟Java高度相似。

JavaScript中的所有的键都是字符串,值是任意对象。

不像Java那种强类型语言,很多时候写错了都不知道。

1、快速入门

1.1、引入

JavaScript的标签相对于CSS不仅可以写在单独的文件和head里,还可以写在body里面。

script标签:

<script>
	alert('hello,world');
</script>

外部引入:

<script src="js/wb.jd"></script>

不用声明类型,在script标签内就是JavaScript:

<script type="text/javascript"></script>

注意:不要在添加自闭和的script标签

<script src="js/wb.jd"/> 错误写法,script标签必须成对出现

1.2、变量以及语法

JavaScript跟Java的语法几乎一样但没有这么严格,按照Java的规范写JavaScript绝对不会出错,反而会变得简单。

JavaScript所有的变量类型都为 var 不用考虑Java中的各种不同的类型之间需要转换的问题。

var num = 1;
alert(num);
// 建议每一行后面都加空格,否在在打包代码时会去除回车合并为一行时可能会出错。
var score = 70;
if(score > 60 && score < 70){
   
    alert("60~70")
}else if(score > 70 && score <80){
   
    alert("70~80")
}else{
   
    alert("other")
}

1.3、浏览器控制

在浏览器中使用开发人员工具进行调试(快捷键 F12,或者ctrl + shift + i)

elements页面元素

console控制台

alert(score)

console.log(score) 打印变量(相当于System.out.println(); )

sources源码

​ 可以打断点,刷新网页进行加载。查看堆栈信息。

network网络

​ 查看请求信息

memory内存

application

可以查看本地存储,cookies

security安全性

1.4、数据类型

JavaScript文档API中文手册

变量

不能以数字开头,一般变量以_$命名

只有一种变量类型 var

数字

JavaScript不区分小数和整数

123//整数
12.1//浮点数
1.233e1//科学计数法
-1//负数
NaN // not a number
Infinity // 无限大
字符串

‘abc’ “abc”

布尔值

ture,false

逻辑运算

与或非

&& 与:两个都为真结果为真

|| 或:一个为真结果为真

! 非:取反,真即假,假即真

比较运算符

= 赋值

== 等于,类型不一样值一样也会判断为ture

!== 不等于

=== 绝对等于,类型一样值一样才会为ture

在作比较的时候不要使用这跟Java不一样,要使用=

NaN与所有的数值都不相等,包括自己

判断是否是NaN只能使用:

isNaN(NaN)
浮点数问题
> console.log(1/3) === (1-2 / 3)

< false

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

> console.log(Math.abs(1/3 - (1-2/3))<0.00000001)

< ture
null和undefined

null 空

under fined 未定义

数组

JavaScript中的数组的数值可以是不同的类型

var arr = [1,2,3,4,5,'hello',null,ture];
new Array(1,12,3,4,5,'hello');
> console.log(arr[0])

< 1

> console.log(arr[6])

< null

> console.log(arr[8])

< underfinde

下标越界提示underfinde

对象

对象使用大括号,数组使用中括号。

每个属性之间使用逗号隔开,最后一个不需要。

var person = {
   
    name:"clover",
    age:3,
    tags:['JavaScript','Java','Web','...']
}

对象的取值:

> person.name
< "clover"
> person.age
< 3

1.5、严格检查模式

直接定义的变量为全局变量,如果需要导入多个js文件那将会出错。

‘use strict’;使用严格检查模式,预防JavaScript的随意性导致产生的问题。

局部变量使用let定义。

必须写在JavaScript的第一行。

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

2、数据类型详解

2.1、字符串

使用单引号或者双引号进行包裹。

转义字符:

\'
\n
\t
\u4e2	\u#### Unicode字符
\x41	Ascll字符

多行字符串:

var msg = 
    `hello
    world
    你好`

模板字符串:

let name = 'clover';
let age = 3;
let msg = `你好,${
     name}`
> console.log(msg)
< 你好,clover

字符串长度:

console.log(student.length)

字符串的可变性和不可变性:

> console.log(student[0])
< s
> student[0] = 1
< 1
> console.log(student)
< student

大小写转换:

//调取方法,不是属性
> student.toUpperCase()
> student.toLowerCase()

字符串截取:

能截取到第一个,截取不到最后一个

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

2.2、数组

存储数据(知道如何存取),以下例举常用方法

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

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

长度:

> arr.length
< 6
> arr.length = 10
< 10
> console.log(arr)
< 10 [0,2,3,4,5,6,emty x 4]

可以通过下标取值,赋值。长度可以改变。

inedxOf() 通过元素获得下标索引

字符串的’1’跟数字1不同

slice() 截取Array的一部分,返回一个新的数组,类似于substring

pusb() :压入到尾部

pop() :弹出尾部的一个元素

unshift():压入到头部

shift():弹出头部的一个元素

sort():排序

reverse():元素反转

concat():不会修改数组,返回一个新的数组

> arr.concat([1,2,3])
< (4)['a',1,2,3]
> arr
< (1)['a']

连接符join

< (3)[1,2,3]
> arr.join('-')
< "1-2-3"

多维数组:跟Java一样

2.3、对象

若干个键值对。跟Java类似:

'use strict';
var person = {
   
    name:"clover",
    age:3,
    email:"JueMing666@outlook.com",
    score:0
}

多个属性之间使用逗号隔开,最后一个属性无需逗号。

赋值:

> person.name = "name";
< "name";

不存在的对象会提示undefined

动态删除属性:

> delete person.name
< ture
> person
<   age:3
    email:"JueMing666@outlook.com"
    score:0

动态添加属性:

> person.sex = "男"
< "男"
> person
< 	age:3
    email:"JueMing666@outlook.com"
    sex:"男"
    score:0

判断属性值是否在这个对象那个中:xxx in xxx

> age in person
< ture
> 'toString' in person
< ture

判断一个属性是否是这个对象自身拥有的:hasOwnProperty()

> person.hasOwnProperty('toString')
< false
> person.hasOwnProperty('age')
< ture

2.4、流程控制

if判断,前面 数据类型 讲过了,跟Java一样。

'use strice';
var age = 3;
if(age>3){
   
    alert("3");
}else if(age > 0 && age <4){
   
    alert("0~3");
}else{
   
    alert("other");
}

循环:

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

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

foEach循环:在Java里是循环,用来遍历数组。在这里是调用一个方法。

var arr = [1,2,3,4,5,6,7,8,9];
age.foEach(function(value)){
           console.log(value)
           }

for…in(打印下标)

for(var num in arr){
   
    if(age.hasOwnProperty(num)){
   
        console.log("存在")
        console.log(age[num])
    }
}

for…of(打印数组)

for(var num of arr){
   
	console.log(num)
}

2.5、Map 和 Set

ES6新特性

Map:

// 学生的成绩和姓名,如果学生很多就很麻烦
// var names = ["tom","jack","xioam"];
// var score = [100,99,88];

var map = new Map([['tom',100],['jack',99],['xiaom',88]]);
var name = map.get('tom');//通过key获得value
map.set(('admin',123456))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值