JavaScript tips and tricks – 1

來源:互聯網
上載者:User

Produce boolean value from other types
All objects in JavaScript can be converted to boolean implicitly, look at these examples:

0 == false; // true1 == true; // true'' == false // truenull == false // true

but these values are not the type of boolean.
Therefore if we compare empty string with false, the result is false:

0 === false; // false1 === true; // false'' === false // falsenull === false // false

Now, the problem is how to generate boolean values from other types:

!!0 === false; // true!!1 === true; // true!!'' === false // true!!null === false // true

pretty cool!

Initialize default value
JavaScript doesn’t have the overload feature of other object-oriented languages.
But the arguments of JavaScript function are optional, missed arguments are passed in with the value of undefined:

function plus(base, added) {    return base + added;}plus(2); // NaN

In this example, plus(2) is the same as plus(2, undefined), the result of 2 + undefined is NaN.

Now the question is how to set the default value of the argument added:

function plus(base, added) {    added = added || 1;    return base + added;}plus(2); // 3plus(2, 2); // 4

Prevent your page from loading in frames
If your site become famous, other people or feed aggregator may embed your page in there site with their interface. This most likely to steal data.

Now it’s time to prevent this action:

if(top !== window) {top.location.href = window.location.href;}

This piece of JavaScript code should be put in the head section of all your pages.

Replace string
The String.prototype.replace method always suprise somebody who are familar with C# or Java.
Consider this code for example:

'Hello world, hello world'.replace('world', 'JavaScript');// The result is "Hello JavaScript, hello world"

The first parameter of replace is a Regular Expression.
If it’s presented as a string, only the first found string will be replaced.

To solve this problem, we must use Regular Expression in JavaScript like this:

'Hello world, hello world'.replace(/world/g, 'JavaScript');// The result is "Hello JavaScript, hello JavaScript"

Also, we can specify to ignore case when replace string:

'Hello world, hello world'.replace(/hello/gi, 'Hi');// The result is "Hi world, Hi world"

Transform the arguments object into an array
Arguments variable that exist in function is a built-in, array-like object.
It’s weird that the arguments has length properties, but doen’t support slice, push, sort, etc.

Now it’s the show time to convert this fake array to a real array:

function args() {return [].slice.call(arguments, 0);}args(2, 5, 8); // [2, 5, 8]
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.