JavaScript权威指南--基础篇1
知识点
l JavaScript由网景(Netscape)公司创建,后来网景(就是现在的Mozilla哦~)把JavaScript提交给ECMA-欧洲计算机制造协会,改名为ECMAScript,再后来微软对这门语言的实现版本起了名字叫Jscript。实际上,大家都叫JavaScript,简称JS哦~
l 目前,ECMAScript发布过第3版和第5版,简称ES3和ES5。
2.对象object:键/值对的集合,言简意赅有木有~
3.JavaScript的原始类型(基本类型)有字符串string、数字number和布尔值boolean
var m = “hello JavaScript”;//定义一个string类型变量
var m = 123;//定义一个number类型变量
var o = true;//定义一个boolean类型变量
4.JavaScript的复合类型有对象Object、数组Array、方法Function、日期Date、布尔Boolean、数字Number、字符串String、正则RegEXP,Math
var o = {name:"hello",age:16};//定义一个对象o
5.JavaScript还有两个空类型:null和undefined
6.赋值的时候,有两种类型:值类型和引用类型,这里要强调下两个的区别,要擦亮眼睛了。
l 值类型:数值、布尔值、null、undefined。
l 相当于重新开了一个存储空间来存储变量值,当改变原变量,新的变量不会一起改变。举个栗子,啊~真的好饿!新建一个a.txt文件,a存了值123,再复制一份a,取名为b.txt,这时候你把a文件里的值改了,b文件是不会改变的哦,不信试试~
var m = 123;
var n = m;//值传递
console.log('m='+m+",n="+n);//m=123,n=123
m = 1;
console.log('m='+m+",n="+n);//m=1,n=123
l 引用类型指对象、函数、数组这类复合类型,引用类型传递的是地址,所以改变其中一个,所有的引用都会改变。
l 这个栗子好举,首先你创建了一个a.txt文件,然后创建a文件的两个快捷方式,分别取名字叫a1和a2,这时候你改变一下a文件的值,看看a1和a2会不会一起变,答案是会变,哈哈,你不服输,那还可以改变下a1的值,再看看,你会发觉a和a2也变得和a1一样了,这就是引用类型的神奇之处~
var o = {name:"hello",age:16};
var o1 = o;//引用类型,地址引用
console.log('o.name='+o.name+",o.age="+o.age);
//o.name=hello,o.age=16
o.name = "world";
console.log('o.name='+o.name+",o.age="+o.age);
//o.name=world,o.age=16
console.log('o1.name='+o1.name+",o1.age="+o1.age);
//o1.name=world,o1.age=16
7.JavaScript中获得类型的运算符是typeof,使用该运算符返回str数据类型
var m = 123;
console.log(typeof m);//number
8.JavaScript中===和==的区别:前者判断恒等,不做类型转换,类型不同一定不相等;后者判断相等,两边值类型不同时要先进行类型转换再比较
9.JavaScript中in运算符的作用:测试属性是否存在
11.JavaScript中创建对象使用关键字new、对象直接量和(ECMAScript 5中的)Object.create()函数来创建
l 用对象直接量,对象直接量是键值对的映射,是一个表达式哦,如下花括号表达式:
var o1 = {//创建一个对象
name:"hello",
age:16,
skills:{
language:"JavaScript",
tool:"test"
}
};
对象直接量在每一次调用都会创建并初始化一个新的对象,所以创建时要注意了
l 用new关键字定义
var o2 = new Object();//创建一个空对象
l 用Object.create()函数,函数第一个参数是这个对象的原型
var o3 = Object.create({x:1,y:2});//o3继承了属性x和y
12.JavaScript中的逻辑中断(短路操作):逻辑或和逻辑与。
l 逻辑或:||
语法:表达式1||表达式2
如果第一个表达式的值为真:返回表达式1,如果第一个表达式的值为假:返回表达式2
function fn(num1) {
num1 = num1 || 1;
console.log(num1);
}
// 如果不穿参数,num1的值:undefined
fn(); // 1
fn(123); // 123
l 逻辑与:&&
语法:表达式1&&表达式2
如果第一个表达式的值为真:则返回表达式2
如果第一个表达式的值为假:则返回表达式1
11.JavaScript中delete运算符的作用是删除对象的属性,注意了, delete只是断开宿主对象与属性的联系,而不会去操作属性中的属性,look下面这个栗子:
var m = {p:{x:1}};
n=m.p;
delete m.p;
console.log(m);//Object {}
console.log(n);//Object {x: 1},x依然存在呢~
语法:boolean delete 数据
用法: ①删除数组中的一个元素
var arr = [1, 2, 3, 4];
console.log( arr ); // [1, 2, 3, 4]
console.log( delete arr[2] ); // true,删除成功
console.log( arr ); // [1, 2, undefined, 4]
②删除一个对象的属性或方法
③删除一个没有用var声明的变量
var m = 123;
n=333;
delete m;
delete n;
console.log(m);//123,删不掉这个m啦~记住就好
console.log(n);//n is not defined
12.JavaScript中循环语句有4种,分别是while、do/while、for、for/in
13.JavaScript中分支语句有两种,分别是if/else语句和switch语句
14.JavaScript中跳转语句break和continue如何使用?Break是跳出当前循环体,continue是跳出当前一层循环,继续进行下一次循环。
小结:初来乍到,有些概念理解不到位的地方还望指正~