3 dấu bằng (===) trong Javscript

3 dấu bằng được dùng để so sánh giá trị lẫn kiểu dữ liệu trong Javascript,

<html>
<head></head>
<body>
    <script type="text/javascript">
        var a=1; // Numeric Value
        var b=1; // Numeric Value
        var c="1"; // String Value
        var d="1"; //String Value
        alert(a===b); // Alerts 'true' as both variables are numeric,having value 1
        alert(c===d); // Alerts 'true' as both variables are string,having value 1
        alert(b===c); // Alerts 'false'as both variables are different type,having value 1
    </script>
</body>
</html>

 

Basic Javascript App

Let’s start on adding some JavaScript to make the app:

 

var Gimmie = {
    $content: $('.content'),
    $form: $('form'),
    toggleLoading: function(){
        // Toggle loading indicator
        this.$content.toggleClass('content--loading');

        // Toggle the submit button so we don't get double submissions
        // http://stackoverflow.com/questions/4702000/toggle-input-disabled-attribute-using-jquery
        this.$form.find('button').prop('disabled', function(i, v) { return !v; });
    },
    userInput: '',
    userInputIsValid: false,
    appId: '',
    validate: function() {
        // Use regex to test if input is valid. It's valid if:
        // 1. It begins with 'http://itunes'
        // 2. It has '/id' followed by digits in the string somewhere
        var regUrl = /^(http|https):\/\/itunes/;
        var regId = /\/id(\d+)/i;
        if ( regUrl.test(this.userInput) && regId.test(this.userInput) ) {
            this.userInputIsValid = true;
            var id = regId.exec(this.userInput);
            this.appId = id[1];
        } else {
            this.userInputIsValid = false;
            this.appId = '';
        }
    },
    throwError: function(header, text){
        // Remove animation class
        this.$content.removeClass('content--error-pop');
        // Trigger reflow
        // https://css-tricks.com/restart-css-animation/
        this.$content[0].offsetWidth = this.$content[0].offsetWidth;
        // Add classes and content
        this.$content
            .html('<p><strong>' + header + '</strong> ' + text + '</p>')
            .addClass('content--error content--error-pop');
        this.toggleLoading();
    },
    render: function(response){
        var icon = new Image();
        icon.src = response.artworkUrl512;
        icon.onload = function() {
            Gimmie.$content
                .html(this)
                .append('<p><strong>' + response.trackName + '</strong> Actual icon dimensions: ' + this.naturalWidth + '×' + this.naturalHeight + '</p>')
                .removeClass('content--error');
            Gimmie.toggleLoading();
            // If it's an iOS icon, load the mask too
            if(response.kind != 'mac-software') {
                var mask = new Image();
                mask.src = 'assets/img/icon-mask.png';
                mask.onload = function() {
                    Gimmie.$content.prepend(this);
                }
            }
        }
    }
};
$(document).ready(function(){
    e.preventDefault();
    // On page load, execute this...
    Gimmie.toggleLoading(); // call the loading function
    Gimmie.userInput = $(this).find('input').val();
    Gimmie.validate();
    if( Gimmie.userInputIsValid ) {
        /* make API request */
        $.ajax({
            url: "https://itunes.apple.com/lookup?id=" + Gimmie.appId,
            dataType: 'JSONP'
        })
        .done(function(response) {
            // when finished
            var response = response.results[0];
            if(response && response.artworkUrl512 != null){
                Gimmie.render(response);
            } else {
                Gimmie.throwError(
                    'Invalid Response',
                    'The request you made appears to not have an associated icon. <br> Try a different URL.'
                );
            }
        })
        .fail(function(data) {
            // when request fails
            Gimmie.throwError(
                'iTunes API Error',
                'There was an error retrieving the info. Check the iTunes URL or try again later.'
            );
        });
    } else {
        /* throw an error */
        Gimmie.throwError(
            'Invalid Link',
            'You must submit a standard iTunes store link with an ID, i.e. <br> <a href="https://itunes.apple.com/us/app/twitter/id333903271?mt=8">https://itunes.apple.com/us/app/twitter/<em>id333903271</em>?mt=8</a>'
        );
    }
});

 

Các trang web giải mã những đoạn code Javascript đã được mã hoá

Bài viết này gởi đến bạn vài trang web hữu ích cho mục đích trên, thường xuyên cập nhật.

Lưu ý, bài viết này có thể sẽ làm bạn vướng đến những vấn đề pháp lý khi bạn cố tình giải mã những đoạn code thương mại. Chúng chỉ mang tính chất tham khảo là chính.

 

Bạn vui lòng đọc bài viết này để nhận biết mã mà bạn gặp phải là mã gì.

  1. http://dean.edwards.name/unpacker : trang này hoạt động khá hiệu quả, với những template blogger từ trang ThemeXpose. Lưu ý khi giải mã, bạn chỉ copy những đoạn code đã được mã hoá, sau đó giải mã từng đoạn một, không nên copy tất cả.
  2. http://jsbeautifier.org : trang này vừa giải mã vừa có chức năng làm đẹp cho đoạn JS quá dài dòng và rối rắm. Đọc thêm bài này để biết.
  3. http://ddecode.com/hexdecoder : chuyển giải các mã HTML/Hexa/Octa. 
  4. http://closure-compiler.appspot.com/home 
  5. http://base64decode.net : trang này chuyên chuyển các mã dựa trên base64 encoding. 
  6. http://www.strictly-software.com/unpack-javascript 
  7. đang cập nhật….