js小节其五

object

        js中对象,用来存储键值对和更复杂的实体,也可以理解为存储带有键的数据的集合

        创建对象的方式

                字面量

                let 变量 = {

                属性(key) = 值 (value),

                key1 = value1,

                key2 = value2,

                }

                

        构造函数

                1、定义了一个构造函数:类似定义了模板或画了张图,在内存中不占空间

                        function student(name,score){

                                this.name = name

                                this.score = score

                        }

                        this.name中的name表示对象的属性

                        this.score中的score表示对象的属性

                        name和score表示函数的参数(形参)

                2、使用new创建对象

                        new是运算符,通过new运算符创建的对象在内存中占用存储空间

                        let s1 = new  Student(‘张三’,98)

                3、B/S 结构  C/S结构

                        1、B/S结构   Brower/Server(浏览器/服务器模式)

                        2、C/S结构   Client/Server   (客户端/服务器模式)

                4、数组的结构赋值

                        1、变量的作用域

                        2、科学使用下标

                5、数组的结构赋值

                        1、将数组的部分元素赋值给变量:赋值符号的左边必须是变量,变量要放在[]

                        let arr = [11,22,33]

                        let a,b

                        [a,b] = arr

                        console.log(a)

                        console.log(b)

                        2、通过结构来实现变量的交互

                        let n1 = 4 , n2 = 8

                        [n1,n2] = [n2,n1];

                 let 变量 = new Object();

                 使用关键字new 调用object()函数创建对象,并将对象的地址放入变量中

               

            构造函数:this代表当前的对象

                function Student(name,score){

                    this.name = name

                    this.score = score

                }

                let s1 = new Student('张三丰',98)

                let arr = []

                for(let i = 0; i < 8; i++){

                    arr[arr.length] = new Student(`A${i + 1},parseInt(Math.random()*100 + 20)`)                

                }

                let max = arr[0].score

                let maxIndex = 0

                for(let i = 1; i < arr.length; i++){

                    if(max < arr[i].score){

                        max = arr[i].score

                        max = 1

                    }

                }

                console.log(arr[maxIndex])

                

                

                属性和文本

                        对象的构成

                                对象的属性类型为:string

                                属性值:可以为任意类型

                        读取数据

                                对象名称,属性名

                                object.keys(对象名)获取对象的所有属性名称

                        添加数据

                                js动态语言,对象可以随时添加数据(键值对)

                                语法

                                        对象名.新属性名  = 新值

                        删除数据

                                delete 对象名.属性名

                        修改数据

                                覆盖原数据        重新赋值

                                对象名。属性名 = 新值

                        js对象中,属性名为string类型,唯一

                                        属性值为任意类型(函数,对象)

                方括号

                        属性名称中使用方括号可以使用任意字符串

                        方括号同样提供了一种可以通过任意表达式来获取属性名称的方法

                    方括号同样提供了一种可以通过任意表达式来获取属性名称的方法

                    let fruit = prompt("Which fruit to buy?", "apple");

                    let bag = {

                        [fruit]: 5, // 属性名是从 fruit 变量中得到的

                    };

                    alert( bag.apple ); // 5 如果 fruit="apple"


 

                    let fruit = prompt("Which fruit to buy?", "apple");

                    let bag = {};

                    // 从 fruit 变量中获取值

                    bag[fruit] = 5;

                    let fruit = 'apple';

                    let bag = {

                    [fruit + 'Computers']: 5 // bag.appleComputers = 5

                    };

                    方括号比点符号更强大。它允许任何属性名和变量,但写起来也更加麻烦。

                    所以,大部分时间里,当属性名是已知且简单的时候,就使用点符号。如果我们需要

                    一些更复杂的内容,那么就用方括号。

            属性简写

                    在上面的例子中,属性名跟变量名一样。这种通过变量生成属性的应用场景很常见,

                    在这有一种特殊的 属性值缩写 方法,使属性名变得更短

                    function makeUser(name, age) {

                        return {

                            name: name,

                            age: age,

                            // ……其他的属性

                        };

                        }

                        let user = makeUser("John", 30);

                        alert(user.name); // John

                    function makeUser(name, age) {

                        return {

                                name, // 与 name: name 相同

                                age,  // 与 age: age 相同

                                      // ...

                             };

                            }

                            let user = {

                            name,  // 与 name:name 相同

                            age: 30

                属性名称限制

                        自定义的属性名称,默认js都会添加“”成为字符串类型

                        属性名称没有限制,可以成为任意类型

                        习惯大家都是按照标识符,命名规范起属性名称了

                        对象名称:_proto_获取原型对象

                判断属性存在

                        in 操作符

                                判断属性是否存在

                        语法:

                                属性名称 in 对象名称

                for - in 遍历对象属性

                        for(let 变量 in 对象名称){

                        }   

                对象的引用和复制

                        基本类型,变量中保存的是数据本身

                        引用类型,变量中保存的是对象的地址(引用)

                        当一个变量传递过程,将变量中保存的“内容”复制一份传递给下一个变量,这个

                过程被称为“值传递”

                        基本类型传递数据本身

                        引用类型传递地址,会发生多个变量指向同一个对象     

                        当两个对象为同一个对象时,两者才相同,返回true

内置对象

        日期对象

                new Date(毫秒数)

                毫秒数起点:1970-01-01  00:00:00

                new Date(字符串)

                new Date(year,month,date,hours,minutes,seconds,ms)

                year必须为4位,month从0开始到11结束,date,当前月的某一天,默认值为1,

                minutes,seconds,ms默认值为0

                getDay()获取星期几,对应的是0,1,2,3,4,5,6。 

                getFullYear()方法,以四位数字形式返回日期  年份。

                getMonth() 方法,以数字0-11返回日期的  月份。

                getDate()方法,以数字1-31返回当前的  日期。

                getHours()方法,以数字0-23返回日期的  小时数。

                getMinutes()方法,以数字0-59返回日期的  分钟数。

                date.getSeconds()方法,以数字0-59返回日期的  秒数。

                date.getMilliseconds()方法,以数字0-999返回日期的  毫秒数

                        let date = new Date();

                        console.log('秒数)',date.getSeconds());

        设置日期

                setFullYear(year, [month], [date])

                setMonth(month, [date])

                setDate(date)

                setHours(hour, [min], [sec], [ms])

                setMinutes(min, [sec], [ms])

                setSeconds(sec, [ms])

                setMilliseconds(ms)

        日期差

                Date.now(日期对象):转化为以毫秒为单位的数值

                返回的对象字符串设置的日期,对应的时间戳

                Date.parse(“字符串”):从字符串中获取日期,返回值类型为number        

                字符串的格式应该为:YYYY-MM-DDTHH:mm:ss.sssZ,其中:

                        YYYY-MM-DD——日期:年-月-日

                        字符“T”是一个分隔符

                        HH:mm:ss.sssZ——时间:小时:分钟:秒.毫秒。

                        可选字符“Z”为 +-hh:mm 格式的时区。单个字符Z代表UTC + 0时区

        原始类型

                原始类型和对象之间的区别

                原始类型,直接保存数据本身

                对象类型,保存数据的地址,通过地址在获取数据本身。

                

                原始类型,保存原始值,7个基本类型的一种

                对象类型,存储多个值作为属性

                基本类型不能动态添加属性

                对象类型可以添加属性

                将函数作为属性存储到对象中,被称为方法  

                js 使用方法过程中,将基本类型转换为对象,使用完毕后转换回原始对象

           js内部构造器

                        String()

                        Number()

                        Boolean()

                        null/undefined 没有任何方法

                进制

                        十六进制        0x        

                        二进制        0b

                        八进制        0o

                方法:

                        num.toString(base)  返回在给定base进制数字系统中number的字符串表示形式

                        Math.floor(3.1)向下取整(3)

                        Math.ceil(3.1)向上取整(4)

                        Math.around(3.4)四舍五入(3)

                        Math.trunc()移除小数点后所有内容

                        toFixed(n)将数字舍入小数点后n位,并以字符串形式返回结果

                        isNaN(n)将其参数转换为数字,然后测试他是否为NaN

                                        如果为NaN,返回true,否则false        

                        isFinite()将参数转换为数字,如果是常规数字,则返回true,排除NaN

                        parseInt()/  parseFloat()从字符串中读取数字,知道无法读取为止。

                        charAt(下标)获取字符下标(base)        f  15  ff 255  ffff  65535

                        charCodeAt(下标)获取字符下标(base)        f  15  ff 255  ffff  65535

                        trim():去除字符串两边空白

                        str.toUpperCase()返回一个大写字符串

                        str.toLowerCase()返回一个小写字符串

                遍历字符串

                        for(let key of str){

                                console.log(key);

                        }

                字符串的不可变性

                        js中字符串不可更改

                查找字符串

                        str.indexOf(“n”);从给定位置查找字符串,没找到返回-1,找到返回位置索引

                        str.lastIndexOf(“n”);从字符串末尾开始查找,字符串标号位置不变。

                是否包含

                        str.includes(“abc”) 是否包含,返回true ,说明包含

                        str.startWith(“abc”)是否以指定字符开头

                        str.endWith(“abc”)是否以指定字符结尾

                获取字符串

                        slice(start,end)

                                返回字符串从start开始到end(不包括end)的部分

                                如果没有第二个参数,从start到结束

                                start/end也可以为负数,从字符串结尾计算

                                

                                str = "abcdef";

                                console.log(str.slice(0,3));abc[)第一位到第三位

                                console.log(str.slice(3));abc[)从开始到结尾

                                console.log(str.slice(-2 , -1 ));e[)结尾开始为 -1

                                console.log(str.slice(-4,-2));cd[)

             

                

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值