轉載—–javascript quiz

來源:互聯網
上載者:User

問題很容易看懂,所以就沒有翻譯.

------------------------原文--------------------------------

## Intro Questions

  01. When might comparative type coercion occur? How would you avoid it? How would you change a "falsy" or "truthy" value into a real boolean?

  02. Describe how variable scope works. Explain how to create a closure using a self-executing anonymous function (also called IIFE: immediately-invoked function expression).

  03. Explain briefly how prototypal inheritance differs from class-based, "classical" inheritance.

  04. Describe how the "module pattern" works. Explain how the "revealing module pattern" expands upon it.

  05. How does a client-side MVC (or MVVM) approach work? What is your preferred MV* JS framework?

## Additional Questions

  06. Why do these yield different results?

```js
'1' + 2 + 3 ; // Equals '123'
3 + 2 + '1'; // Equals '51'
3 + 2 + 1 ; // Equals 6
```

  07. Why is `0.3` *not* the result of the following addition? How do you work around this peculiarity?

```js
0.1 + 0.2; // Equals 0.30000000000000004
```

  08. Describe how variable hoisting works, and how to avoid bugs that may arise from it.

  09. How do these differ?

```js
function foo() {}

// versus

var foo = function() {};
```

  10. When might you use a function's `call()` method, or its `apply()` method?

  11. Explain how to determine if a variable is an array or an object. (*Hint:* `typeof` lies!)

  12. In the following example, what is foo aliased to? (*Hint:* It is what `this` means.)

```js
(function(foo) {
// What is 'foo' aliased to?
})(this);
```

  13. In JavaScript (and the DOM), some global variables are actually mutable, such as: `window`, `document`, and `undefined`. How would you write code to ensure these were predictably available for use? Assuming someone had injected this code, how would you work around it? (*Hint:* See the previous question.)

```js
var window = '';
var document = 0;
var undefined = true;
```

  14. In one line of code, how you would make a copy of an array?

  15. What is the difference between `setInterval` and `setTimeout`? *Bonus:* What is the lowest cross-browser increment that each can accurately use?

  16. Explain how `delete` works. What types of things cannot be deleted?

  17. Describe how event delegation works, and when you should use it to handle UI interaction. Example markup…

```html
<ul id="special">
<li>
<a href="#">Special link 1</a>
</li>
<li>
<a href="#">Special link 2</a>
</li>
<li>
<a href="#">Special link 3</a>
</li>
</ul>
```

  18. What does this snippet of code do?

```js
var foo = bar ? bar : 0;
```

  19. When might you write something like this, and what is it shorthand for?

```js
foo && foo.bar();
```

  20. How do `parseInt` and `parseFloat` differ? When would you use a number's `toFixed()` method? In what instance might the following code snippet actually make sense to use?

```js
var my_number = my_string - 0;
```

  21. Write a function named `sum` that returns the total of any number of parameters. Example&hellip;

```js
// Should equal 15
sum(1, 2, 3, 4, 5);

// Should equal 0
sum(5, null, -5);

// Should equal 10
sum('1.0', false, 1, true, 1, 'A', 1, 'B', 1, 'C', 1, 'D', 1, 'E', 1, 'F', 1, 'G', 1);

// Should equal 0.3, not 0.30000000000000004
sum(0.1, 0.2);
```

ANSWERS:http://www.cnblogs.com/chenguangyin/archive/2012/11/24/2786129.html

  原文地址:https://github.com/nathansmith/javascript-quiz

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.