javascript基础注意事项

(1)let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。

function varTest() {
    var x = 1;
    if (true) {
        var x = 2;       // 同样的变量!
        console.log(x);  // 2
    }
    console.log(x);  // 2
}

function letTest() {
    let x = 1;
    if (true) {
        let x = 2;       // 不同的变量    
        console.log(x);  // 2  
    }
    console.log(x);  // 1
}

(2)您可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:

var lastname="Doe", age=30, job="carpenter";

声明也可横跨多行:

var lastname="Doe",
age=30,
job="carpenter";

一条语句中声明的多个不可以赋同一个值:

var x,y,z=1;

x,y 为 undefined, z 为 1。

(3)当您声明新变量时,可以使用关键词 "new" 来声明其类型:

var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;

(4)你可以使用以下语法创建对象方法:

methodName : function() { code lines }

你可以使用以下语法访问对象方法:

objectName.methodName()

 

lampJavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象

(5)向未声明的 JavaScript 变量分配值

如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。

这条语句:

carname="Volvo";

将声明 window 的一个属性 carname。

非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。

var var1 = 1; // 不可配置全局属性
var2 = 2; // 没有使用 var 声明,可配置全局属性

console.log(this.var1); // 1
console.log(window.var1); // 1

delete var1; // false 无法删除
console.log(var1); //1

delete var2; 
console.log(delete var2); // true
console.log(var2); // 已经删除 报错变量未定义

(6)null是一个只有一个值的特殊类型。表示一个空对象引用。

 

Note用 typeof 检测 null 返回是object。

 

你可以设置为 null 来清空对象:

实例

var person = null;           // 值为 null(空), 但类型为对象

(7)在 JavaScript 中, undefined 是一个没有设置值的变量。

typeof 一个没有值的变量会返回 undefined

实例

var person;                  // 值为 undefined(空), 类型是undefined


尝试一下 »

任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

实例

person = undefined;          // 值为 undefined, 类型是undefined

 

(8)null 和 undefined 的值相等,但类型不等:

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

(9)constructor 属性返回所有 JavaScript 变量的构造函数

(10)

你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):

实例

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

(10)用String(true)转换成字符串,或者true.tostring()转换成字符串

          Numer(true)可以转换成数字

parseFloat()解析一个字符串,并返回一个浮点数。
parseInt()解析一个字符串,并返回一个整数。

(11)我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错。

instanceof

可通过 instanceof 操作符来判断对象的具体类型,语法格式:

var result = objectName instanceof objectType

之前的typeof在区分Array或者Date的时候是不能区分的。

(12)JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

以下两个实例将获得相同的结果:

(13)

在常规的比较中,数据类型是被忽略的,以下 if 条件语句返回 true:

var x = 10;
var y = "10";
if (x == y)

而在switch中是使用的===来比较的。

(14)添加逗号虽然语法没有问题,但是在不同的浏览器可能得到不同的结果。

var colors = [5, 6, 7,]; //这样数组的长度可能为3 也可能为4。

(15)在 JavaScript 中, 对象 使用 名字作为索引

如果你使用名字作为索引,当访问数组时,JavaScript 会把数组重新定义为标准对象。

执行这样操作后,数组的方法及属性将不能再使用,否则会产生错误:

实例

var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
var x = person.length;         // person.length 返回 0
var y = person[0];             // person[0] 返回 undefined

(16)在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。

(17)

function f1() {
  console.log("助教好帅哦");
}
f1();
function f1() {
  console.log("小苏好猥琐哦");
}
f1();

这两个f1()函数执行的都时下面这个函数,小苏好猥琐哦

但是var f2 = function () {
  console.log("助教没有小杨帅");
};
f2();
f2 = function () {
  console.log("小杨真的很帅");
};
f2();

这连个函数是初始化,所以上面的调用上面的函数,下面的调用下面的函数的。

//函数自调用
(function () {
  console.log("阿涅哈斯诶呦");
})();
(function () {
  console.log("嘎嘎")
})();

(18)自函数调用,但是这是一次性的。

(19)变量和函数同时提升的时候,肯定是变量提升在最前面,函数在后面

(20)使用json的对象的时候

var json = {
  "name": "小明",
  "age": "10",
  "sex": "男"
};
//遍历对象,是不能通过for循环遍历,无序

//key是一个变量,这个变量中存储的是该对象的所有的属性的名字
for (var key in json) {
  console.log(key + "===========" + json[key]);

}必须使用json[key],使用json.key是undefined,这个要记住。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值