JavaScript第五天

一、位运算符

    &   与      都为1结果为1

    |   或      只要有1结果为1

    ^   异或    相同为0,不同为1

    ~   非      0变1,1变0

                ~正数   -(n+1)

                ~负数   (|n|-1)

    <<  左移

    >>  右移    有符号右移

    >>> 右移    无符号右移

3&2

    011

&   010

---------

    010

5&3

    101

&   011

----------

    001

3|2

    011

|   010

------------

    011

5|3

    101

|   011

----------

    111

3^2

    011

^   010

------------

    001

5^3

    101

^   011

----------

    110


 

js 数值类型--64位

32位  最高位-符号位

18 -- 10010

00000000 00000000 00000000 00010010

-18

11111111 11111111 11111111 11101101  取反

11111111 11111111 11111111 11101110  加1

~18       //-19

00000000 00000000 00000000 00010010

11111111 11111111 11111111 11101101     ~后

11111111 11111111 11111111 11101100     减1

00000000 00000000 00000000 00010011     取反    19

                                        加负号  -19

~3        //-4

00000000 00000000 00000000 00000011

11111111 11111111 11111111 11111100     ~后

11111111 11111111 11111111 11111011     减1

00000000 00000000 00000000 00000100     取反    4

                                        加负号  -4

左移<<

2<<5     向左移动5位

00000000 00000000 00000000 00000010     2

000 00000000 00000000 0000001000000     左移5位,空出低位补0        

-2<<5

00000000 00000000 00000000 00000010

11111111 11111111 11111111 11111101

11111111 11111111 11111111 11111110     -2

111 11111111 11111111 1111111000000    

111 11111111 11111111 1111110111111

000 00000000 00000000 0000001000000     64

右移>>

64>>5

00000000 00000000 00000000 01000000

0000000000000 00000000 00000000 010     右移 高位补0

-64>>5

00000000 00000000 00000000 01000000

11111111 11111111 11111111 10111111

11111111 11111111 11111111 11000000

1111111111111 11111111 11111111 110     有符号右移,看符号位,如为1补1

0000000000000 00000000 00000000 010     -2

-64>>>5

00000000 00000000 00000000 01000000

11111111 11111111 11111111 10111111

0000011111111 11111111 11111111 101      无符号右移,不看符号位,高位全部补0

0000011111111 11111111 11111111 100

1111100000000 00000000 00000000 011

        console.log(3&2)     //2
        console.log(5&3)     //1
        console.log(3|2)     //3
        console.log(5|3)     //7
        console.log(~3)      //4
        console.log(~18)     //-19 
        console.log(25&3)    //1
        console.log(25|3)    //27
        console.log(25^3)    //26
        console.log(~25)     //-26
        console.log(-2<<5)   //64
        console.log(64>>5)   //2
        console.log(13>>2)      //3
        console.log(-13<<2)     //-52
        console.log(9<<4)       //144
        console.log(255&85)     //85
        console.log(~15)        //-16
        console.log(~-15)       //14

二、三目(三元)运算符     ? :

a=10

if(a>0){

    alret("yes")

}else{

    alret("no")

}

a>0? alret("yes"):alret("no")

三、js的内置对象

Date

Math

1、Date 日期对象

        var d1=new Date()                   //当前时间

        console.log(d1.getDate())           //日

        console.log(d1.getDay())            //星期  1234560

        console.log(d1.getHours())          //小时1...23 0

        console.log(d1.getMinutes())        //分钟1... 59 0

        console.log(d1.getMonth())          //月0...11

        console.log(d1.getSeconds())        //秒1...59 0

        console.log(d1.getTime())           //返回1970.1.1午夜(零时)开始到当前时间的“毫秒”数

        console.log(d1.getFullYear())       //年

        //计算长这么大,经历了多少天
        var d1=new Date()
        var a=new Date("2001-7-25")
        console.log(parseInt((d1-a))/(1000*60*60*24))

        function formatDate(type){
            var d1=new Date()
            console.log(d1.getFullYear()+"-"+d1.getMonth()+1+"-"+d1.getDate())
        }
        var ndate=formatDate("-")


 

        格式话日期对象

        console.log(d1.toLocaleDateString())//2022/7/1

        console.log(d1.toLocaleString())    //2022/7/1 11:22:53

        console.log(d1.toLocaleTimeString())//11:22:53

2022-07-01

2022年7月1日

formatDate("-")------2022-07-01

formatDate("/")------2022/07/01

formatDate("zh")------2022年7月1日

formatDate(".")------2022.07.01

      Date.prototype.formDate=function(type){
            var d1=new Date()
            if(type=="-"){
                alert(d1.getFullYear()+"-"+d1.getMonth()+1+"-"+d1.getDate())
            }else if(type=="/"){
                alert(d1.getFullYear()+"/"+d1.getMonth()+1+"/"+d1.getDate())
            }else if(type=="zh"){
                alert(d1.getFullYear()+"年"+d1.getMonth()+1+"月"+d1.getDate()+"日")
            }else if(type=="."){
                alert(d1.getFullYear()+"."+d1.getMonth()+1+"."+d1.getDate())
            }
        }

----原型封装----

对象:属性、方法

日期格式化---升级版

formatdate("yyyy-MM-dd hh:mm:ss")

 //方法1
        function formatdate(fmt){
            var d=new Date()
            var reg=/(y+)-(M+)-(d+) (h+):(m+):(s+)/
            if(reg.test(fmt)){
                fmt=fmt.replace(RegExp.$1,d.getFullYear())
                fmt=fmt.replace(RegExp.$2,d.getMonth()+1)
                fmt=fmt.replace(RegExp.$3,d.getDate())
                fmt=fmt.replace(RegExp.$4,d.getHours())
                fmt=fmt.replace(RegExp.$5,d.getMinutes())
                fmt=fmt.replace(RegExp.$6,d.getSeconds())
                console.log(fmt)
            }
        }
        formatdate("yyyy-MM-dd hh:mm:ss")


        //方法2
        function formatdate(fmt){
            var d=new Date()
            var dreg={"y+":d.getFullYear(),
                      "M+":d.getMonth()+1,
                      "d+":d.getDate(),
                      "h+":d.getHours(),
                      "m+":d.getMinutes(),
                      "s+":d.getSeconds()}
            for(var k1 in dreg){
                //k1,dreg[k1]
                //字符串转换正则
                // new RegExp("("+k1+")")      //  /(y+)/
                if(new RegExp("("+k1+")").test(fmt)){
                    fmt=fmt.replace(RegExp.$1,dreg[k1])
                }
            }
            return fmt
        }
        var ndate= formatdate("yyyy-MM-dd hh:mm:ss")
        alert(ndate)

        //方法3
        Date.prototype.formatdate=function(fmt){
            var dreg={"y+":this.getFullYear(),
                      "M+":this.getMonth()+1,
                      "d+":this.getDate(),
                      "h+":this.getHours(),
                      "m+":this.getMinutes(),
                      "s+":this.getSeconds()}
            for(var k1 in dreg){
                if(new RegExp("("+k1+")").test(fmt)){
                    fmt=fmt.replace(RegExp.$1,dreg[k1])
                }
            }
            return fmt
        }
        var ndate=new Date().formatdate("yyyy-MM-dd hh:mm:ss")
        alert(ndate)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值