JavaScript学习_20220630

1. 前端三要素

  • HTML(结构):超文本标记语言,决定网页的结构和内容
  • CSS(表现):层叠样式表,设定网页的表现样式
  • JavaScript(行为):弱类型脚本语言,用于控制网页的行为

2. 基础知识

(1)console.log(score) 在浏览器的控制台打印变量!(System.out.println())

(2)比较运算符:

  • ==等于(类型不一样,值一样,会判断为true)
  • ===绝对等于(类型一样,值一样,才会判断为true)
  • NaN===NaN,这个NaN与所有的数值都不相等,包括自己,只能通过isNaN(NaN)来判断这个数是否是NaN
  • 尽量避免使用浮点数进行运算,存在精度问题,Java中一般都采用java.math.BigDecimal类来进行精确计算。JavaScript使用Math.abs(x-y)<0.0000001来判断。

(3)字符串和数组操作

'use strict';     :   严格检查模式,预防JavaScript的随意性导致产生的问题,必须写在JavaScript的第一行。

多行字符串编写

<script>
    'use strict'
    var msg = `
    hello
    world!
    `;
    alert(msg);
</script>

 模板字符串

<script>
    'use strict';
   let name = "张三";
   let age = 9;
   let msg =`你好呀!${name},你今年有${age}岁! `
    alert(msg);
</script>

 字符串操作

var st = "qwertyui"
console.log(st.length) // 8
st[0]=1 //1
console.log(st)//qwertyui  字符串的不可变性
console.log(st.toLocaleUpperCase()) //QWERTYUI   方法不是属性
console.log(st[5]) // y
console.log(st.substring(3))//rtyui 从第4个字符截取到最后一个字符组成的字符串
console.log(st.substring(3,6))//rty [3,6)

 数组

var arr = [1,2,3,4,5,6]
console.log(arr)//(6) [1, 2, 3, 4, 5, 6]
arr[1]=1
console.log(arr)//(6) [1, 1, 3, 4, 5, 6]
arr.length=10
console.log(arr)// (10) [1, 1, 3, 4, 5, 6, empty × 4]
arr.length=3
console.log(arr)// (3) [1, 1, 3]
//数组可变,长度也可变,增加的元素为空,如果赋值过小,元素会丢失
arr.slice(1,5)//(4) [2, 3, 4, 5]  和字符串的substring作用一致

push():在尾部压入

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

arr.push("a","b")
arr//(8) [1, 2, 3, 4, 5, 6, 'a', 'b']在尾部加入
arr.pop()
arr//(7) [1, 2, 3, 4, 5, 6, 'a']

unshift():在头部压入

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

sort():元素排序

reverse():元素反转

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

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

多维数组

var a=[[1,2],[3,4],["A","B"]]

数组:存储数组(如何存,如何取)

(4)对象

若干个键值对:

var 对象名={
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}

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

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

<script>
    var person={
        name:"张三",
        age:3,
        tags:['js','java','web','...']
    }
</script>
person.name //'张三' 获取值
person.age = 19 //赋值
person.hh //undefined  使用一个不存在的对象属性,不会报错
delete person.tags //true  通过delete动态删减属性
person //{name: '张三', age: 19}
person.email = "123456"  //通过赋值增加对象属性
person //{name: '张三', age: 19, email: '123456'}
person['age'] //19  取值
    
'age' in person  //true  判断属性值是否在这个对象中
'toString' in person //true  判断方法是否在这个对象中
    
 person.hasOwnProperty('email')//true  判断一个属性是否是这个对象自身拥有的
person.hasOwnProperty('toString')//false

 (5)流程控制

var s=[1,2,3,12,34,56,76,85,453];
// for(var index in object)
for(var x in s){
    console.log(s[x]);
}
 for(var x of s){
    console.log(x);
}

(6)Map和Set

Map

var map = new Map([['Jack','songer'],['Ethan','giter']]);
map.set("Tom","cat"); //新增及修改
var name = map.get('Jack');//获得key中的值
console.log(name);
console.log(map);
map.delete('Ethan');

Set:无序不重复的集合

var set = new Set([3,1,1,1,,2]);//set可以去重
console.log(set)  // Set(4) {3, 1, undefined, 2}
set.add(4); //添加
set.delete(1);//删除
set.has(3);//是否含有元素

(7)iterator

 遍历数组

var arr = [3,2,6];
for(let x of arr){
    console.log(x); //3 2 6
}

遍历Map

var map = new Map([['tom',100],['jack',90],['jerry',40]]);
for(let x of map){
    console.log(x);//(2) ['tom', 100] (2) ['jack', 90] (2) ['jerry', 40]
}

遍历Set

var set = new Set([5,8,90]);
for (var x of set){
    console.log(x);  //5  8  90
}

 

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...