Java(JavaScript01)

Java(JavaScript01),第1张

Java(JavaScript01)

参考视频:JavaScript最新教程通俗易懂(狂神)

1. 什么是JavaScript 1.1 前端三要素
  • HTML(结构):
    • 超文本标记语言(Hyper Text Markup Language),
    • 决定网页的结构和内容
  • CSS(表现):
    • 层叠样式表(Cascading Style Sheets),
    • 设定网页的表现样式
  • JavaScript(行为):
    • 是一种弱类型脚本语言,其源代码不需要经过编译,而是由浏览器解释运行,用于控制网页的行为
1.2 概述
  • JavaScript是一门世界上最流行的脚本语言
  • JavaScript的开发只用了10天
  • 一个合格的后端人员,必须精通JavaScript
1.3 历史

JavaScript的起源故事

  • ECMAScript ,它可以理解为是JavaScript的一个标准。
  • 大部分浏览器都不支持最新版本,只支持最新版本的上一个版本。
  • 开发环境与线上环境的不一致。
2. 快速入门 2.1 引入JavaScript
  • 内部标签
  • 外部引用

示例一:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    
    




    
    
    <script src="js/zach.js">script>

    
    <script type="text/javascript">

    script>
head>
<body>




body>
html>
alert('Hello World');
2.2 基本语法入门

示例一:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        //1. 定义变量   变量类型 变量名 = 变量值;
        var score = 100;
        // alert(num);
        //2. 条件控制
        if (score>=60 && score<80){
            alert("[60,80)");
        }else if (score>=80 && score<100){
            alert("[80,100)");
        }else{
            alert("score:"+score);
        }
        //console.log(score); 在浏览器的控制台打印变量 System.out.println(score);
        //少用alert
        /*
        注释
         */

    </script>
</head>
<body>

</body>
</html>

浏览器必备调试须知:(360极速浏览器(调试专用))

2.3 数据类型
  • 数值、文本、图形、音频、视频… …

  • 变量
    var 王者荣耀 = "倔强青铜”;

  • number

    • js不区分小数和整数,Number
123	//整数123
123.1	//浮点数123.1
1.23e3	//科学计数法
-99	//负数
NaN	//not-a-number
Infinity	//表示无限大
  • 字符串
'abc'
"abc"
  • 布尔值
true
false
  • 逻辑运算
&&	//两个都为真,结果为真
||	//一个为真,结果为真
!	//真为假,假为真
  • 比较运算符(!重要!)
=	//
==	//等于(无论类型是否相同,只要值一样,结果就为true)
===	//绝对等于(类型一样,且值一样,结果为true)                              
  • 这是一个JS的缺陷,坚持不要使用==比较
  • 注意:
    • NaN===Nan,返回false,NaN与所有数值不相等,包括自己
    • 只能通过isNaN(NaN)来判断这个数是否是NaN

  • 浮点数问题:
    console.log((1/3) === (1-1/3)) false
    • 尽量避免使用浮点数进行运算,会存在精度问题。
      Math.abs(1/3-(1-2/3))<0.000000001
    • 两者足够接近可算作true

  • null和undefined
    • null 空
    • undefined 未定义
  • 数组
    • Java的数组必须是相同类型的对象,JS不需要。
        //保证代码的可读性,尽量使用[]
        var arr = [1,2,3,4,5,'hello',null,true];
        new Array(1,2,3,4,5,'hello');
  • 取数组下标时,如果越界了,就会报undefined
  • 对象
    • 对象用大括号,数组用中括号。
    • 每个属性之间使用逗号隔开,最后一个不需要添加符号
        // Person person = new Person(1,2,3,4,5);
        var person = {
            name:"zach",
            age:18,
            tags:['js','java','web','...']
        }

取对象的值

person.name
> "zach"
person.age
> 18
2.4 严格检查模式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    'use strict';
    严格检查模式,预防JavaScript的随意性产生的问题
    适用前提:IDEA需要设置支持ES6语法
    需要写在JavaScript的第一行
    局部变量建议都用let定义
    -->
    <script>
        'use strict';
        //全局变量
        let i = 1;
        //ES6版本 推荐用let
    </script>
</head>
<body>

</body>
</html>
3. 数据类型 3.1 字符串
  • 正常字符串我们使用单引号或者双引号包裹。
  • 注意转义字符 \
\'
\n
\t
\u4e2d	\u### Unicode字符
\x41		Ascll字符
  • 多行字符串编写
        //~波浪号 和 tab之间的`    反单引号or反引号
        var msg =
            `hello
            world
            你好a
            你好b`
  • 模版字符串
        //~波浪号 和 tab之间的`    反单引号or反引号
        let name = "zach";
        let age = 3;

        let msg = `你好呀,${name}`
  • 字符串长度
str.length
  • 字符串的可变性:不可变。
  • 大小写转换
//注意,这里是方法,不是属性了。
student.toUpperCase()
student.toLowerCase()
  • student.indexOf(“t”)

  • substring

[)
student.substring(1)	//从第一个字符串截取到最后一个字符串
student.substring(1,3)	//[1,3)左闭右开
3.2 数组
  • Array可以包含任意的数据类型
var arr = [1,2,3,4,5,6]	//通过下标取值和赋值
arr[0]
arr[0] = 1
  1. 长度
arr.length

注意:假如给arr.length赋值,数组大小就会发生变化。如果赋值过小,元素会丢失。过大将会出现未定义的空值。

  1. indexOf,通过元素获得下表索引
arr.indexOf(2)
1

字符串的"1"和数字1是不同的

  1. slice() 截取Array的一部分,返回一个新数组

  2. push、pop *** 作尾部

push:压入尾部
pop:d出尾部的一个元素
  1. unshift()、shift() *** 作头部

  2. 排序sort()

(3)["B","C","A"]
arr.sort()
(3)["A","B","C"]
  1. 元素反转reverse()
(3)["A","B","C"]
arr.reverse()
(3)["C","B","A"]
  1. concat()
(3)["C","B","A"]
arr.concat([1,2,3])
(6)["C","B","A",1,2,3]
arr
(3)["C","B","A"]

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

  1. 连接符join
    打印拼接数组,使用特定的字符串连接
(3)["C","B","A"]
arr.join('-')
"C-B-A"
  1. 多维数组
arr = [[1,2],[3,4],[5,6]];
arr[1][1]
4
  • 数组:存储数据(如何存,如何取,方法都可以自己实现!)
3.3 对象

若干个键值对

var 对象名 = {
	属性名:属性值,
	属性名:属性值,
	属性名:属性值
}
//定义了一个person对象,它有四个属性!
var person = {
	name:"zach",
	age:18,
	email:"123456789@qq.com",
	score:0
}
  • JS中的对象,{… …}表示一个对象,键值对描述属性xxxx: xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!
  • JavaScript中的所有的键都是字符串,值是任意对象!
  1. 对象赋值
person.name = "zach"
"zach"
person.name
"zach"
  1. 使用一个不存在的对象属性,不会报错!undefined
person.haha
undefined
  1. 动态地删减属性,通过delete删除对象的属性
delete person.name
true
person
  1. 动态地添加属性,直接给新的属性添加值即可
person.haha = "haha"
"haha"
person
  1. 判断属性值是否在这个对象中! xxx in xxx!
'age' in person
true
//继承
'toString' in person
true
  1. 判断一个属性是否是这个对象自身拥有的hasOwnProperty()
person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true
3.4 流程控制
  1. if判断
var age = 3;
if (age>3){//第一个判断
	alert("haha");
}else if(age<5){//第二个判断
	alert("kuwa");
}else {//否则...
	alert("kuwa");
}
  1. while循环,要避免程序死循环
while(age<100){
	age = age + 1;
	console.log(age)
}
do{
	age = age + 1;
	console.log(age)
}while(age<100)
  1. for循环
for (let i = 0; i < 100; i++){
	console.log(i)
}
  1. forEach循环:
  • 5.1开始引入
var age = [1,2,3,4,5,6,7,8,9,10];

//函数
age.forEach(function(value){
	console.log(value)
})
  1. for…in
//for(var index in object){}
for(var num in age){
	if(age.hasOwnProperty(num)){
		console.log("存在")
		console.log(age[num])
	}
}
3.5 Map和Set
  • ES6的新特性
  1. Map
        //ES6 Map
        //学生的成绩,学生的名字
        // var names = ["tom","jack","haha"];
        // var scores = [100,90,80];

        var map = new Map([['tom',100],['jack',90],['haha',80]]);
        var name = map.get('tom');  //通过key获得value
        map.set('admin',123456);    //新增或修改
        map.delete("tom");  //删除
  1. Set:无序不重复的集合
        var set = new Set([3,3,1,1,1,1]);//set可以去重
        set.add(2); //添加
        set.delete(1);   //删除
        console.log(set.has(3));    //是否包含某个元素
3.6 Iterator
  • ES6的新特性
  • 如何使用 iterator 来遍历迭代Map和Set?
  • 遍历数组
  • for-in:打印下标
  • for-of:打印内容
        var arr = [3,4,5]
        for (var x in arr){
            console.log(x)
        }
  • 遍历map
        var map = new Map([["tom",100],["jack",90],["zach",80]]);
        for (let x of map){
            console.log(x)
        }
  • 遍历set
        var set = new Set([5,6,7]);
        for (let x of set){
            console.log(x)
        }

 
 

—————— THE END ——————
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/731431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存