JavaScript基础知识:对象,函数,类,数组的基础知识

此片文章只介绍基础,不涉及高深知识!

  1. 对象是?
  2. 对象属性的操作
  3. 对象解构
  4. 工厂函数
  5. 构造函数
  6. 数组
  7. 数组归并
  8. 数组迭代
  9. 数组的数据操作

对象(object)

 let a = new Object()
 
     a.name = "nam"

     console.log(a)

let a = {
name:"my",
age:"18"
}

第一种方法:new Object():创建一个新的对象,a是对象的名称,name是属性,name后面是属性的值。


第二种方法:是字面量的方法创建对象,a是对象的名称,name是属性,name后面是属性的值。

对象属性的操作

Configurable设置属性是否可以删除并重新定义
Enumberable设置属性是否可以for-in循环
Writable设置属性的值是否可以被修改
Value读取和写入数据
let a ={};
 Object.defineProperty(a,"name",{
     writable:false,
     value:"my"
 });
 console.log(a.name)
 a.name = "m"
 console.log(a.name)//不可以被修改 writable:false

Object.defineProperty(a,"name",{
    configurable:false,
    value:"my"
});
console.log(a.name)
delete a.name;
console.log(a.name)//无法删除configurable:false

对象解构

可以在一条语句中嵌套数据实现多个赋值

let person = {
        name:"my"
    }
    //不使用解构语法
    let a = person.name
    console.log(a)
    //使用解构
    let {name:a} = person
    console.log(a)

创建对象的工厂模式和构造函数模式

  • 工厂模式
  function a (name,age,sex){
        let w = new Object()
        w.name = name,
        w.age = age,
        w.sex  = sex
        w.sayname = function (){
            console.log(this.name)
        };
        return w 
    }
    let per1 = a("q","v","w")
    let per2 = a("qq","vq","wq")
 console.log(per1)
  console.log(per2)

function里面是一个容器,外面传值是往里面加东西

  • 构造函数模式
function a (name,age,sex){
        this.name = name,
        this.age = age,
        this.sex = sex;
        this.sayname = function(){
            console.log(this.name)
        }
    }
    let per = new a("a","a","a")
    per.sayname()
    console.log(per)
工厂模式构造函数模式
显式的创建对象没有显式的创建对象
属性和方法都指向w属性和方法都指向this
有返回值没有返回值

类声明类表达式
class person{}const adnim = class {}
  console.log(a);//报错,无法访问
   class a{}
    console.log(a)//class ca{}

console.log(a);//a is not defined
var c = class a {}
console.log(a)//class a {}

类的函数声明不可以提升

数组

  • 创建数组
 let a =[1,2]
    console.log(a);
    console.log(typeof(a)) 
  • 检查是否为数组
  a= [1];
    console.log(Array.isArray(a))//true
    c= 1;
    console.log(Array.isArray(c))//false
  • 数组每一项
let e = [12,1];
    e.length =1
    console.log(e)//{12}

length :数组的个数,每一项。

  • 数组归并方法

数组归并方法:reduce() 和 reduceright(),这两个函数接收4个参数:归并值(合起来的值),当前值(要加上去的值),当前项的索引,数组本身

 var a = [1,2,3,4,5]
 let c = a.reduce((prew,cur,index,array)=>prew + cur)
alert(c)//15
// reduce从前往后累加,函数的返回值都会成为下一次调用的参数:  return first + second:返回值

let v = a.reduceRight(function(prew,cur,index,array){
    console.log(prew+"和"+cur)
    return prew + cur
  
})
alert(c)
//reduceRight"从后往前
  • 数组迭代方法
方法有啥用
every对数组的每一项都传入函数,全部都是true,则返回true,否则false
filter筛选合适的数据
forEach对每一个数组都会操作一次
map对数组的每一项都传入函数,最后返回执行函数之后的数组
some一次为true,都为true
const iteration = [1,2,3];
    let a = iteration.every((a,b,c)=>
     a>2
    )
    // alert(a)//false
    //every:对数组的每一项都传入函数,全部都是true,则返回true,否则false

    let b = iteration.filter((a,b,c)=>
     a>2
    )
    // alert(b)//3,4
     //filter:筛选合适的数据

     iteration.forEach(()=>{
        //  console.log(iteration)//打印了三次
     })
     //forEach:对每一个数组都会操作一次

      iteration.map((value,index,arr)=>{
         value *2
         console.log(iteration)
      })
    let value = iteration.map((item,index,array)=>
    item * 2 
    )
    console.log(value)//2,4,6

    iteration.some((value,index,array)=>{
        console.log(value >2)//最后的结果true
    })
    //some:一次为true,都为true
  • 数组添加,删除,排序
方法有啥用
push在数组末尾添加数据
pop删除数据最后一个数据,返回数组的最后一项
shift删除数据的第一项,并返回删除的数据
reverse反向排序
sort正常排序
concat连接数组
splice可以删除,添加,替换数据
push在数组末尾添加数据
 var a = [1,2,3,5,6,9,0]
    a.push(3)
    console.log(a)//[1, 2, 3, 5, 6, 9, 0, 3]
    
     b= a.pop()
     console.log(b)//3

 var a = [1,2,3,5,6,9,0]
 a.shift()
   console.log(a)//[2, 3, 5, 6, 9, 0]

var a = [1,2,3,5,6,9,0]
 var c = [45,46]
     console.log(a.reverse())//[0, 9, 6, 5, 3, 2, 1]
     console.log(a.sort())//[0, 1, 2, 3, 5, 6, 9]
     console.log(a.concat([12,22]))//[0, 1, 2, 3, 5, 6, 9, 12, 22]
     console.log(a.concat(c))//[0, 1, 2, 3, 5, 6, 9, 45, 46]
     console.log(a.splice(0,2))//[0, 1]
     a.splice(1,0, "red")
     console.log(a)//[2, 'red', 3, 5, 6, 9]
  • 搜索数组
方法啥用
indexOf:(需要查找的数据,查找的开始位置索引)从前往后搜数据,返回索引
lastIndexOf:(需要查找的数据,查找的开始位置索引)从后往前搜数据,返回找到的第一个数据的索引
 let a = [1,2,3,4,5]
    console.log(a.indexOf(2))//1
    console.log(a.lastIndexOf(5))//4
    
    const b = [2,3,4,3,3]
    console.log(b.lastIndexOf(3))//4

    console.log(b.indexOf(3,1))//1
    console.log(b.indexOf(3,2))//3
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值