JavaScript(1)

JavaScript(1)

介绍

JavaScript是一门世界上最流行的语言,Java和JavaScript没有关系

编写第一个js代码

  1. 使用<script>标签

  2. 可以在body或者head里面进行编写

    行内引入:在html文件中使用<script>标签,在标签内部编写

<body>
   <script>
       alert("Hello World!");
   </script>
</body>

外部引入:单独写一个js文件,通过<script>标签引入

 <script src="js/js1.js" ></script>  //<script></script>必须成对出现,type="text/javascript"不用写,默认就是js
alert("Hello World!");

基本语法

javascript大小写严格,可以在网页控制台进行调试

  1. 变量定义:

    var 变量名=变量值;

2.条件控制:if-else if-else if可以嵌套

if(2>1){
alert("true");
   //弹框弹出true
}
/*
多行注释
和Java相同
*/

3.控制台打印变量

console.log(变量) //打印变量的值

4.数据类型

number:js不区分整数和小数,NaN表示不是一个数

字符串:“abc” 'abc'

布尔值:true false

运算:位运算(& | ^ *)逻辑运算(&& || !)

比较运算符:使用===,绝对相等。使用==,如果类型不同而值相同也会输出true。

注意:NaN===NaN //false

只能通过isNaN(NaN)判断这个数是不是NaN

(1/3)===(1-2/3)
false
//注意尽量不要使用浮点数,会失去精度
1-2/3
0.33333333333333337
1/3
0.3333333333333333

使用:Math.abs(1/3-(1-2/3))<0.0000001
Math.abs(1/3-(1-2/3))<0.0000001
true

空指针和未定义:null空指针 undefined未定义

数组:一些可以不是同一类型的数据 var a=[1,1,2,3,1.2,'Hello',null]

var a=[1,2,3,4.2,null,true,'Hello'];
>console.log(a);
>[1, 2, 3, 4.2, null, true, 'Hello']
>console.log(a[3]);
>4.2
>console.log(a[8]);
>undefined  //数组下标越界时,显示未定义

对象:对象用{},数组用[]

var person={
      name:"lerry",
      age:18,
      subject:['English','python','java']
}
//打印
>person.age
>18

严格检查模式

  1. 在js代码第一行使用"use strict",预防js的随意性导致产生的一系列问题

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

数据类型

字符串

string是不可变的,不能修改值

console.log("s");
console.log('s');
console.log("\" \"");  //使用\转译

var mg=`samkdlc
       a,kdmkncjd
       asndjwjnjebabs
       `
console.log(mg);  //输出多行字符时,使用``包裹

var a=`你好,${name}`; //模板字符串
console.log(a);

console.log(a.length);//获取长度

//大小写转换
console.log(name.toUpperCase());
console.log(name.toLowerCase());

//subString获取指定长度字符串 [)
console.log(name.substring(1,6));

//indexOf获取某个元素下标
console.log(name.indexOf('e'));

数组

数组长度是可变的,如果赋值过小,元素就会丢失

//数组长度
a.length;

//indexOf 字符串的“1”和数字1是不一样的
a.indexOf();

//slice 截取数字的一部分,返回一个新的数组,相当于substring()
a.slice();

//push在最后添加 pop输出最后的元素
a.push(带压入元素);
a.pop(); //元素弹出之后,数组长度-1

//unshift()在头部添加 shift()弹出头部的元素
a.unshift();  a.shift();

//sort()元素排序 reverse()元素反转
a.sort();  a.reverse();

//concat()拼接
a.concat()    //并没有修改数组,只是返回了一个新的数组

//join()连接
a.join()    //使用指定的符号返回连接数组元素

对象

使用键值对,用{}括起来,多个属性间使用‘,’隔开

//定义对象
var person={
    name:"lerry",
    age:18,
    date:2022-7-14
}

//调用一个不存在的对象不会报错
>person.time;
>undefined

//动态删减属性
>delete person.date;  //删除
>true
>person.time='14:58'  //添加
>{name: 'lerry', age: 18, time: '14:58'}

//判断属性值是否在对象之中
'name' in person   //如果是父类的方法,会继承,用in无法判断出是不是该对象自身的属性
person.hasOwnProperty('name');  //可以判断出对象本身是否存在该属性

Map和Set

1.Map 键值对形式,通过“键”获得”值“

//Map获取值
var map=new Map([['python',89],['java',93],['js',100]]);
var score=map.get('java');
console.log(score);
>93

//Map设置值
map.set('c++',91);
console.log(map);
>Map(4) {'python' => 89, 'java' => 93, 'js' => 100, 'c++' => 91}

//Map删除
map.delete("python");
>Map(2) {'java' => 93, 'js' => 100}

2.Set 无序不重复的集合,可以去重

var set=new Set([1,2,4,5,3,2,1,1,1]);
console.log(set);
>Set(5) {1, 2, 4, 5, 3}

//Set添加值
set.add()

//set删除值
set.delete()

//判断set中是否包含一个数
set.has()

3.Iterator 迭代遍历set或map

var set=new Set([1,2,4,5,3,2,1,1,1]);
var it=set[Symbol.iterator]();    
console.log(it);
>SetIterator {1, 2, 4, 5, 3}

//通过for-of遍历,打印的是具体的值,用来便利Map和Set
for(var x of set){
 console.log(x);
}

 

流程控制

if判断

var age=25;
if(age>30){
  alert("中年人");
}else if(age<30 && age>15){
  alert("青年人");
}else{
  alert("小朋友");
}

循环

//for循环
var age=25;
for(var i=0;i<=age;i++){
 console.log(i);
}

//while循环
while(age){
  console.log(age);
  age--;
}

//数组循环
a.forEach(function(value){
  console.log(value);
})
//for in 循环遍历的是下标
for(i in a){
  if(a.hasOwnProperty(i)){
      alert("存在");
  }
  console.log(a[i]);
}


posted @ 2022-07-14 16:34  lerry1342  阅读(52)  评论(0)    收藏  举报