• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

Javascript初学者需要知道的一些与其他语言不通的知识

时间:2015年04月02日 15:24:36    来源:魔法猪系统重装大师官网    人气:16586

1. Javascript没有类的概念。一般使用原型链继承(prototypal inheritance)来模拟类。

2. 除了null和undefined之外的任何数据类型都能表现成Object (behave like an object),包括Number类型和Function类型。

var n = 42;
function f() { alert("foo"); };

alert("n is " + n.toString()); // "n is 42"
alert(f.name + " is a function"); // "f is a function"

注意,是“表现为object”,而不是“是object”。事实上,number, string和boolean是基本类型(primitives),除了这三个之外的都可以算作object,比如一个正则表达式也是一个object。 当需要访问基本类型变量的属性时,那些基本类型变量将被临时转换成object。 例如:

"foobar".big();
// is equivalent to
new String("foobar").big();

3.14.toFixed();
// is equivalent to
new Number(3.14).toFixed()

另外,不能强行给基本类型变量(number, string, boolean)加上私有属性。

var a = "mystring",
    b = new String( "mystring" );

Object.defineProperty( b, 'foo', { value: 42, enumerable: false });
console.log(b.foo); // 42
Object.defineProperty( a, 'foo', { value: 42, enumerable: false });
// TypeError: Object.defineProperty called on non-object

// trying another way:
a.foo = 42;
// remember, this is equivalent to:
// new Number(a).foo = 42;
// …so the 'foo' property is defined on the wrapper, not on 'a'
console.log(a.foo); // undefined

3. 如果变量名前不加上var,那么这个变量就是全局的。

function setGlobal() {
  a = 42;
}

function setLocal() {
  var b = 23;
}

setGlobal();
alert(a); // 42

setLocal();
alert(b); // ReferenceError: b is not defined

4. this指针是由调用函数赋予的, 而不是由被调函数自身定义的。 例如:

var a = {}, b = {};

a.foo = 42;
b.foo = 18;
a.alertFoo = function() { alert(this.foo); };

a.alertFoo(); // 42
a.alertFoo.call(b); // 18

5. 严格的相等判断应该使用===。例如 :

0 == false 为真, 但是 0 === false 为假。

6. 0, undefined, null, "", NaN 都是假值 (falsy)。

 这些值全都等同于false,但他们之间不能相互替换。

7. 变量声明会被提升到当前作用域的顶端。 例如:下述代码中,你认为调用foo函数会返回什么?

var a = 2;

function foo() {
    return a;
    var a = 5;
}

它将返回undefined。 上述代码等同于下述代码:

var a = 2;

function foo() {
    var a; // 'a' declaration is moved to top
    return a;
    a = 5;
}

另一个例子: 下述代码中,调用函数foo后变量a的值是什么?

var a = 42;

function foo() {
    a = 12;
    return a;
    function a(){}
}

答案是42。因为foo函数中变相声明了a变量,因此a成了局部变量了。

function foo() {
    function a() {} // local 'a' is a function
    a = 12; // local 'a' is now a number (12)
    return a; // return the local 'a' (12)
}

8. 参数在函数声明中可以省略, 例如:

function hello(name, age) {
  alert("Hello "+name+", you’re "+age+" years old!");
}

hello("Anon", 42); // "hello Anon, you’re 42 years old!"
hello("Baptiste"); // "hello Baptiste, you’re undefined years old!"
hello("Bulat", 24, 42); // "hello Bulat, you’re 24 years old!"

9. 对于字符串,使用双引号""和单引号''的效果是一样的。

10. Javascript代码可以在浏览器环境之外运行, 比如在Terminal或者HTTP服务器上。(例如 Node.js)

Javascript,初学者,需要,知道,的,一些,与,其他
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部