SOURCE

console 命令行工具 X clear

                    
>
console
// //string test
// let str = "sdssssdddd";
// let result1 = str.search("d");
// let result2 = str.indexOf("s");
// console.log(result1);//1
// console.log(result2);//0
// console.log(str.slice(0,5))// sdsss
// console.log(str.substring(0,5))// sdsss
// console.log(str.substr(0,5))// sdsss
// console.log(str.replace(/sd/,"myname"))//mynamessssdddd
// console.log(str.replace("sd","myname"))//mynamessssdddd
// console.log(str.split('').reverse().join(""))//ddddssssds
// console.log(str.concat("123"))//sdssssdddd123
// console.log("   my".trim());//my
// console.log(str.charAt(2));//s
// console.log(str.strike())//sdssssdddd 加了删除线

// //Number test
// let num = 33;
// console.log(num.toString(16));// 21 string
// console.log(num.toString(8));//41
// console.log(num.toString(7));//45
// console.log(num.toString(2));//100001
// console.log(num.toExponential(8))//3.30000000e+1 string 
// console.log(num.toPrecision(8))//33.000000 保留8位有效数字 string 
// console.log(num.toFixed(2))//33.00 保留两位小数 string 
// console.log(parseInt("15692373380 is my phone number"))//15692373380 
// console.log(parseInt("my phone number is 15692373380"))//NaN
// console.log(Number(new Date()));//1616140065259 时间戳 只有Number有这个作用,parse方法不可以
// console.log(Number.NEGATIVE_INFINITY + Number.POSITIVE_INFINITY)//NaN infinity+1 也是 infinity
// console.log(typeof(new Number(11)));//object
// console.log(typeof((new Number(11).valueOf())));//number valueOf方法可以将对象转换为原始值
// console.log(Number.MAX_SAFE_INTEGER);//9007199254740991
// console.log(Number.MAX_SAFE_INTEGER+2);//9007199254740992 这里精度明显有问题了


// //array test 
// let arr = [1,2,3,4,"my",5];
// console.log(arr instanceof Array);//true方法 n你
// console.log(Array.isArray(arr));//true 两个检验数组的方法
// //push pop unshift shift 
// delete arr[3]
// console.log(arr);//[1,2,3,null,"my",5]
// arr = [1,2,3,4,"my",5];
// console.log(arr.concat([6]));//[1,2,3,4,"my",5,6] 只是一个返回值 arr没改变
// //splice前两个参数指定插入位置,位置后应删除多少个元素,后面是新元素
// arr.splice(4,1);
// console.log(arr);//[1,2,3,4,5] 
// arr = [1,2,3,4,"my",5];
// console.log(arr.slice(1,2));//[2]
// console.log(arr.sort());//[1,2,3,4,5,"my"]
// console.log(arr.sort((a,b)=>{return b-a}));//[5,4,3,2,1,"my"]
// console.log(arr.sort(()=>{return 0.5-Math.random()}));//数组乱序
// arr = [1,2,3,4,"my",5];
// let temp_array = [];
// //forEach 好像和 for item in arr 也没啥区别
// //iteration方法好像都不会直接改变原数组,而是返回一个新数组(除了forEach)
// arr.forEach((value,index,arr)=>{
//     temp_array.push([value,index]);
// })
// console.log(arr)
// console.log(temp_array);//[[1,0],[2,1],[3,2],[4,3],["my",4],[5,5]]
// temp_array = [];
// //下行代码输出["0-1","1-2","2-3","3-4","4-my","5-5"]
// console.log(arr.map((value,index,arr)=>{return index + "-" + value}));
// //下行代码输出[1,2,3,4,5] 注意回调函数中应该return一个布尔值
// console.log(arr.filter((value,index,arr)=>{return typeof value=="number"}));
// //16 1+1+2+3+4+5 total刚开始默认是1 
// console.log(arr.reduce((total,value,index,arr)=>{return total+index;}));
// console.log(arr.every((value,index,arr)=>{ return typeof value=="number"}));//false 有个string
// console.log(arr.some((value,index,arr)=>{ return typeof value=="string"}));//true 有一个string
// console.log(arr.indexOf("my"));//4
// console.log(arr.find((value,index,arr)=>{return index==4}));//my 还有个findIndex函数


// //
// console.log(12222);
// console.log(/./g.exec("baba"));

// console.log();
// console.log();
//Object test
// let obj = new Object();
// //设置属性
// Object.defineProperty(obj,"name",{
//     value:"zhouziyue"//value是最重要的值,其他的就是一些对象特性 
//     //value 默认 undefined
//     //configurable 默认false
//     //enumerable 默认false 数组等为true
//     //writable 默认false
//     //get set 默认undefined
// });
// //批量设置属性
// Object.defineProperties(obj,{
//     "sex":{
//         value:"man",
//         writable:true,
//     },
//     "weight":{
//         value:25
//     }
// });//相当于一个defineProperty的批处理版
// console.log(Object.getOwnPropertyDescriptor(obj,"name"));
// //{"value":"zhouziyue","writable":false,"enumerable":false,"configurable":false}
// console.log(Object.getOwnPropertyNames(obj));
// //["name","sex","weight"]
// console.log(Object.keys(obj));//获取所有可枚举的属性,并返回数组
// console.log(Object.getPrototypeOf(obj));//{} 获取原型
// console.log(Object.isExtensible(obj));//true 查看能否向对象添加属性 
// Object.preventExtensions(obj);//阻止以后向对象添加属性
// console.log(Object.isExtensible(obj));//false 说明上一个函数起作用了
// console.log(Object.isSealed(obj));//true 说明可以修改对象的属性
// Object.seal(obj);//阻止以后修改对象添加属性
// console.log(Object.isSealed(obj));//false
// Object.freeze(obj);
// console.log(Object.isFrozen(obj));

// let o = {
//     name:"aa",
//     get name(){
//         return "1111";
//     },
//     set name(value){
//         this.name = value;
//     }
// }
// o.name = "sb"; 
// console.log(o.name);

//Es6 test
// console.log(Number.EPSILON)
<div id="main" title="a"></div>
<style>
    /* *{
        color:red;
    }
    [title=a]{
        color=blue;
    }
    #main>h1:active{
        height:20px;
        width:20px;
        background-color:black;
        margin-top:100px;
    }
    #h{
        height:20px;
        width:20px;
        background-color:green;
        margin-top:100px;
    }
    div>div{
        height:100px;
    } */
    #test2{
        height:0px;
        width:0px;
        margin-top:0px;
        margin-left:0px;

    }
    #main{
        margin:100px;
        height:100px;
        width:100px;
        background-color:hsla(120,100%,50%,1);
        border-style:dashed dotted double ridge;
        border-color:red;
        z-index:0;
        padding:5px;
        outline-color:yellow;
        outline-style:dotted;
        margin-left:
    }
    }
</style>
<script>

</script>