es6get,set方法,数值扩展,对象扩展及模块化引入相关概念

get和set方法(对属性进行方法的绑定):得到一个动态变化的值,里面为属性不是方法,set先执行,要接受一个参数,get返回一个

class Phone{
                get price(){
                    console.log("价格属性被读取了")
                    return "hhh"
                }
                set price(price1){
                    console.log("价格属性被修改了")
                }//要返回一个参数
            }
            let s=new Phone();
            s.price=122;
            // console.log(s.price)

--------------------------------------------------------------------------------------------------------------
数值扩展:
Number.EPSILON表示最小精度,一个数小于最小精度,认为它和这个数相等,用在浮点数运算上面,有误差

function fun(a,b){
                if(Math.abs(a-b)<Number.EPSILON){
                    return true;
                }
                else{
                    return false;
                }
            }
            console.log(0.1+0.2===0.3);
            console.log(fun((0.1+0.2),0.3))


// 因为a,b都是浮点数所以不相等,用这个方法让差值小于最小数,则把它们看作相等,是我们自己把这两个数设置为相等,它们本质上是不相等的

Number.isFinite检测一个数是否为有限数:
console.log(Number.isFinite(100));//true
            console.log(Number.isFinite(100/0))//false
            console.log(Number.isFinite(Infinity));//false

NNumber.isNaN检测一个数是否为NaN
            console.log(Number.isNaN(100));//false

将字符串转化为整数
            let a="123"
            console.log(parseInt(a)+2);
125
            console.log(parseFloat(a)+3);126
            console.log(parseInt("124das"))//自动截断数字

判断一个数是否为整数:isInteger
            console.log(Number.isInteger(2.2))//false

取整:Math.trunc
            console.log(Math.trunc(12.321))//12
            
判断正负:Math.sign,正为一,负为-1,0为0
            console.log(Math.sign(100));//1
            console.log(Math.sign(-21));//-1
            console.log(Math.sign(0));//0
            

-----------------------------------------------------------------------------------------------------------
对象方法扩展:
1.判断两个值是否完全相等objec.is
            console.log(Object.is(123,321));
            
            // 2.合并对象 object.assign
            const a={
                name:"hh",
                age:12,
                sex:"男",
                cl:3
            }
            const b={
                name:"ww",
                age:11,
                sex:"女"
            }

2. 取并集,后边的属性会覆盖前边同名属性
            console.log(Object.assign(a,b));
            
3.object.setprototypeof:设置原型对象
      

     const c={
                dress:"眉山"
            }
            const d={
                school:"锦江学院"
            }
            
            Object.setPrototypeOf(c,d);
            console.log(Object.getPrototypeOf(c));
            console.log(c);

--------------------------------------------------------------------------------------------------------
模块化:模块化是一个大的程序文件,拆分成许多小的文件然后组装起来
好处:防止命名冲突,代码复用(把功能代码封装成一个方法提供一个接口),高维护性(修改文件不会冲突,便于升级)
模块功能主要由两个命令构成:export(规定模块的对外接口,哪些数据需要暴露),import(输入其他模块提供的功能)


1.分别暴露 export let name="xxx"
export let name="wxy";
export function fun(){
    console.log("这是一个mokuai");
}

            

2.统一暴露(语法:export{name1,name2})
let name2="wxy2";
function fun2(){
    console.log("这是统一暴露模块")
}
export{name2,fun2}


3.默认暴露,如果想要调用方法,要 在对象后面加defaul.方法名
export default{
    // 可以暴露任何数据类型
    name3:"wxy3",
    fun3:function(){
        console.log("这是默认暴露");
    }
}
    import * as a from "./mkh.js";//这里的a大概是个对象?
            console.log(a);
            console.log("hh");

            a.fun();
            console.log(a.name);
            a.default.fun3();//调用

引入模块
1.通用的模块导入
import * as 变量 from "./xxx.js"
变量.属性/方法()[这里的变量大概是个对象]

2.解构赋值形式,暴露属性名,然后直接打印:import{变量1,变量2} from"./xx.js"
            import{name,fun} from "./mkh.js"
            import{name as name2,fun2} from "./mkh.js"
            console.log(name);
            import{default as name3} from "./mkh.js"
            fun();//注意:如果在引入不同模块时出现了相同的变量名时,可以import{变量 as 新的变量名 ,变量2}from "./xxx.js"

3.默认暴露引入:import 变量n from "./xxx.js",仅针对默认暴露形式


另一种模块引入形式:因为HTML文件中存在大量代码,所以可以将模块打包在另一个模块中,然后再在HTML代码引入新打包的模块,注意:要写在末尾

---------------------------------------------------------------------------------------------------
模块代码化转换:之前在HTML中直接引入,但不是每款浏览器都支持兼容性,所以要转化【工作中遇到问题再补】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值