js基础入门(二)

这篇博客详细介绍了JavaScript的基础语法,包括if语句、while和for循环、数组操作如forEach、for...in,以及Map和Set的使用。此外,还讲解了函数定义、arguments、rest参数、变量作用域、函数方法如apply,以及日期对象和JSON操作。最后提到了面向对象编程中的类和继承。
摘要由CSDN通过智能技术生成

if语句

语法和Java类似

 var score=90;
if(score<60){
    alert('D')
}else if (score>59&&score<75){
    alert('C')
}else if (score>74&&score<90){
    alert('B')
}else {
    alert('A')
}

while

和Java语法类似,不在赘述

while(score<60){
    alert('测试while循环');
    score=score+60;
}

for语句

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

forEach

 var arr=[1,2,3,4,5,7,23,21,35,66];
 arr.forEach(function (value) {
     console.log(value)
 })

for…in

 for(var num in arr){
     console.log(arr[num])
 }

Map和Set

Map:

 var map=new Map([['zhangsan',18],['lisi',19],['wangwu',20],['wangwu',22]]);
var name=map.get('lisi');
console.log(name)
 map.set('hh',21);
 map.delete('wangwu');

Set

 var set=new Set([1,2,3,4,4,5,5]);
set.add(6);
set.delete(1);

map和set的遍历

前面介绍了for…in,但for in 只能获取元素的下标位置,所以现在介绍另一种遍历方式,for…of,使用for…of遍历数组能够直接的获取到数组元素。

var map=new Map([['zhangsan',18],['lisi',19],['wangwu',20],['wangwu',22]]);
for (var x of map){
    console.log(x)
}

在这里插入图片描述
set的遍历方式也同理:

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

在这里插入图片描述

函数

定义函数

function 函数名{
     … 
     …
}
arguments

此关键字代表传递进来的所有参数,是一个数组。
我们定义一个函数,当函数的参数与传进的参数不匹配时,不取多余的参数

'use strict'
function f(x,y) {
console.log('x='+x);
console.log('y='+y);
    for (let i = 0; i <arguments.length ; i++) {
        console.log(arguments[i]);
    }
}

在这里插入图片描述

rest

rest可以用来获取除函数定义外的多余参数
定义:只能写在函数定义参数的最后面

function f(a,...rest){
…………
}
function f(x,...rest) {
console.log('x='+x);
console.log(rest);
}

使用:
除了函数定义时的x,多余的参数都被存放在rest
在这里插入图片描述

变量的作用域

在js中,var定义的变量是有作用域的,当变量定义在函数体中时,在函数体外无法使用此变量。
在不同的函数体内,变量是相互独立的,即,在不同的函数内部定义同名的变量是互不影响的。
以下代码中的两个x变量是互不影响的:

function f() {
var x=1;
}
function f1() {
var x=2;
}

当函数嵌套使用时内部函数可以访问外部函数的成员,反之则不行

function f() {
var x=1;
function f1() {
        var y=x+1;
    }
    var z=y+1;
    console.log(z);//访问不到f1中的y
}

在这里插入图片描述

假如内部函数的变量和外部函数变量重名,则使用内部的变量(函数查找变量从内向外查找,先查找内部函数的变量,如果外部函数有与内部函数重名的,那么内部函数会屏蔽外部函数的同名变量)

 

提升变量作用域 :

function f() {
    var x='w'+y;
    console.log(x);
    var y='s';
}
f();

在js中自动提升了y的声明,但没提升y的赋值:
相当于:

function f() {
	var y;
    var x='w'+y;
    console.log(x);
     y='s';
}
f();

在这里插入图片描述
写代码使用时一般在函数开头将变量定义出来:

function f(){
var a,b,c;//事先定义好变量,后面用到再赋值
a='x';

全局函数

方法

定义方法

方法就是把函数放在对象里面,对象里只有属性和方法

var person={
    name:'zhangsan',//属性
    birth:2000,//属性
    age: function () {//方法
        var now=new Date().getFullYear();
        return now-this.birth;
    }
}

调用方法时需要加括号:

person.age();

属性可以值接调用不用加括号:

person.name;
person.birth;

apply

在js中,this可以改变自己所指向的对象

function getAge() {
    var now=new Date().getFullYear();
    return now-this.birth;
}
var person={
    name:'zhangsan',//属性
    birth:2000,//属性
    age: getAge
}
var person1={
    name:'lisi',//属性
    birth:2010,//属性
    age: getAge

}
getAge.apply(person1,[]);

当getAge.apply(person,[])参数指向person对象时,返回值为22
当getAge.apply(person,[])参数指向person1对象时,返回值为12

内部对象

Date类

基本使用

var now=new Date();
now.getFullYear();//年
now.getMonth();//月
now.getDate();//日
now.getHours();//时
now.getMinutes();//分
now.getSeconds();//秒
now.getDay();//星期几

形式转换

now.toLocaleString()
'2022/8/6 22:14:06'
now.toGMTString()
'Sat, 06 Aug 2022 14:14:06 GMT'

JSON

json是什么?

在js中一切都是对象,任何js支持的类型都能用json来表示
json字符串和js对象的区别

json字符串:var json='{"name":"zhangsan ","age":20,"sex":"女"}'
js对象var ob={name:'zhangsan',age:20,sex:'男'}

格式:
对象都用:{}
数组都用:[]
所有的键值对都用: key:value
json字符串和对象的转换:
将对象转换为json字符串:

JSON.stringify(对象);
var ob={
    name:'zhangsan',
    age:20,
    sex:'男'
}
var jsonob=JSON.stringify(ob);

在这里插入图片描述

json字符串转js对象:

var jsonr=JSON.parse('{"name":"zhangsan ","age":20,"sex":"女"}')

在这里插入图片描述

面向对象编程

class继承(ES6之后才有)

* 定义类 ,属性,方法
class student {
    constructor(name,age) {
        this.name=name;
        this.age=age;
    }
    play(){
        alert(name+'play ball');
    }
}
var stu=new student('lisi',18);

继承:

class student {
    constructor(name,age) {
        this.name=name;
        this.age=age;
    }
    play(){
        alert(name+'play ball');
    }
}
class wangw extends student{
    constructor(name,age) {
        super(name);
        this.age=age;
    }
    myage(){
        alert(this.age+"years old");
    }
}

var stu=new wangw('lisi',18);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大狗晋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值