js --"說聲愛你不容易"

<div class="tit"><label>yourName:</label><input type="text" id="yourName" /><button onclick="you(1)">肯定</button></div>
        
        <script type="text/javascript">
            
            function you(num){
                var resultNum = 1;
                while(num < 300){
                    resultNum *= num ++;                
                }
                var partArr = [];
                var part = ((resultNum < num) + typeof []);
                for (var i = 0; i< part.length; i++){
                    if((i + 1) % 3 == 0){
                        partArr.push(part[i]);
                    }
                }
                var special = String.fromCharCode((this + [])[52 >> 2].charCodeAt() - 1);
                partArr.splice((~[]),0,special);
                
                var ele1 = document.getElementById('yourName').value;
                var ele2 = (resultNum / 1314 + '520') [([] + []) * 1];
                var ele3 = partArr.join('');
                var ele4 = arguments.callee.name;
                return [ele1, ele2 ,ele3,ele4].join(' ');
            }

        </script>
    

知識點:javascript

一、超過170的大數, 階乘的結果爲Infinity(無窮) (如上代碼爲299 !)java

二、當window對象轉換爲字符串時,爲‘[object window]’函數

三、~ 按位非  this

  簡單一點,對任一數值 X 進行按位非操做的結果爲 - ( x + 1 )spa

  那麼, ~~X 就爲 - ( - ( x + 1 ) + 1 )code

四、>>右移   能夠理解爲10進制的 52 除以 4orm

五、formCharCode 和 charCodeAt ,爲ASCII碼值 與 字符 相互轉換的方法對象

六、在函數中使用arguments.callee 指向的是函數自己blog

七、this指向的是函數的全部者ip

 

 

由於知識點都比較偏 ,
而且打印出來的結果是這樣的:

全部標題爲「 說聲愛你不容易 」 

 

* 以上代碼是基於 HTML5學堂 公衆號《解碼》一篇中的代碼 進行修改後的 樣子 ——   版權說明

相關文章
相關標籤/搜索