JavaScript 总汇小笔记
(嗯嗯嗯,我也想成为别人口中的大神,功夫足球——“我猪肉荣,又何尝不想成为一位伟大的舞蹈家”)
什么是javascript?
Javascipt是一种脚本语言,由web浏览器进行解释和执行。
JavaScript起源
JavaScript 诞生于1995年,它的出现主要用于网页的“行为”做处理。
-
ECMAScript(European Computer Manufacturers Association) :核心 个人理解:也算是一个标准吧。而这个标准需要个个厂商去实现。 然而,不同浏览器厂商标准会有不同的实现。至今发展有七个版本了,至于后面也肯定会有更新。
-
DOM :文档对象模型(Document Object Model) =》
通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的 -
BOM :浏览器对象模型 BOM部分主要是针对浏览器的内容,其中常用的就是window对象和location,
window是全局对象很多关于浏览器的脚本设置都是通过它。
location则是与地址栏内容相关,比如想要跳转到某个页面,或者通过URL获取一定的内容。
navigator中有很多浏览器相关的内容,通常判断浏览器类型都是通过这个对象。
screen常常用来判断屏幕的高度宽度等。
history不太常用,一般应该不会有写关于历史记录的脚本。更多详细参照:http://www.cnblogs.com/xing901022
下面我们来正式去学习JavaScript吧
基础:
(所以。。。我还是滚去代码吧)
JavaScript 各种需要主要的小事项{
①JS中要严格区分大小写; ②基本每条语句结束后要以分号结尾(;); 3.JS中会忽略很多空格和换行,所以我们可以利用空格和换行及进行格式化 (代码换行就是为了看得个清晰,容易维护)
}
一、JavaScript 输出形式有三种
1.以提示框形式显示 :alert("hello world!");
2.以文档模式输出(网页):document.write("你好 世界!");
3.在控制台里面输出:console.log("hello boss!");
注意!:js是按循序执行的,一般情况下是重上往下执行/
二、js的存在方式也有三种(和CSS差不多):
- 行内js 直接在标签内引入:<a href="javascript:alert("我是在a链接里面的javascript");"> ,但是,这样属于行为与结构耦合,不方便维护,非常不推荐这样写。
- 内部js: 在直接在页面的<script></script>标签内写js代码
优点:相对于使用行内js,内部js代码较为集中,与页面结构的实现代码耦合度较低,比较便于维护
缺点:js代码仅限于当前页面的使用,代码无法被多个页面重复使用,导致代码冗余度较高
3.外部js: 引入外部的js文件(推荐使用)
优点:1.页面代码跟js代码实现有效分离,降低耦合度
2.便于代码的维护和扩展
下面要开始认真啦!!!
(唉!永远也写不完的代码啊。。。)
三、js中的量
1.字面量(都是一些不可改变的值):字面量都是可以直接使用的,但是一般不会去直接去使用(额。。。好像有点前后矛盾了)
比如 1 2 3 4 5
2.变量 变量可以用来保存字面量,而且变量值可以任意改变的,变量更加方便我们使用,所以在开发中都是以变量去保存一个字面量,而很少去直接使用变量
注意!!!不要乱声明一个变量(严重区分大小写)不然。。。
3.声明变量。在js中用 var 关键字来声明一个变量
比如 var a; a = 123; 声明和赋值同时进行 :var a = 123;
四、标识符(identifier) (变量名、函数名、属性名 又或者 自主命名一个标识符)
1.标识符是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
2.声明一个标识符时,要遵守以下规则:
(1).标识符中可以含有字母、数字、下划线、$ 符号
(2).标识符不能以数字开头 比如: var 1abc = 123; (错误!)
(3).标识符不能是ES中的关键字(var)var var = 123;(错误!) 、 保留字(class)var class = 123;(也是错误!)、true、false和null
另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。
(4).标识符一般都是采用驼峰式(双驼峰、单驼峰)命名法(首字母大写(小写),每个单词开头字母大写,其余字母都是小写)
(5).js底层保存标识符时,实际上是采用 Unicode 编码(UTF-8),所以理论来讲,所有UTF-8 中含有的内容都可以作为标识符 。比如 :var 一行白鹭 = 123; 但千万别用,这里只是说明一下而已。
五、JS数据类型
js中有六种数据类型,包括五种基本数据类型(Number , String, Boolean, Undefined, Null),和一种复杂数据类型(Object)。
typeof 操作符
由于js
中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof关键字.
typeof 123 //Number
typeof 'abc' //String
typeof true //Boolean
typeof undefined //Undefined
typeof null //Object
typeof { } //Object
typeof [ ] //Object
typeof console.log() //Function
null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。
1.Number类型
Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。
NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身。
isNaN() 函数用于检查其参数是否是非数字值。
isNaN(123) //false isNaN("hello") //true
2.String类型
字符串有length属性。
字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。
在字符串中我们还可以使用\(反斜杠)作为转义字符
比如:\"文字" ; \'文字' ; \n 表示换行 ; \t 表示制表符
3.Boolean类型
该类型只有两个值,true和false
4.Undefined类型
只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。
5.Null类型
null类型被看做空对象指针,前文说到null类型也是空的对象引用。
6.Object类型
js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。
三大引用类型
1.Object类型
我们看到的大多数类型值都是Object类型的实例,创建Object实例的方式有两种。
第一种是使用new操作符后跟Object构造函数,如下所示
var person = new Object();
person.name = "Micheal";
person.age = 24;
第二种方式是使用对象字面量表示法,如下所示
var person = {
name : "Micheal",
age : 24
};
2.Array类型
数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。
创建数组的基本方式有两种
第一种是使用Array构造函数,如下所示
var colors = new Array("red","blue","yellow");
第二种是使用数组字面量表示法,如下所示
var colors = ["red","blue","yellow"];
组成部分:
数组其实是由多个(键-值)所组成的一个多容器
数组的索引 默认是从0开始的
定义数组
vararr= new Array(23,23,45,56,435);
vararr2 = [23,34,546];
vararr3 = new Array();
arr3[0] = 234;
arr3[1] = 234;
3 Function类型
每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数通常是使用函数声明语法定义的,如下所示
function sum(num1,num2){
return num1 + num2;
};
这和使用函数表达式定义函数的方式相差无几。
var sun = function (){
return sum1 + sum2;
};
也就是说,js按照存储方式分为值类型和引用类型。那么他们的计算有什么区别呢?
题目1: var a = 100;
var b = a;
a = 200;
console.log (b);
题目2: var a = {age : 20};
var b = a;
b.age = 21;
console.log (a.age);
题目1的答案是 100,题目2的答案是21,
题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。
此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,
这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。
题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。
这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。
因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。
----------------------------转载https://www.cnblogs.com/xuniannian/p/7452086.html
六、JS中的算术运算符(一元运算,二元运算,三元运算)
1、加减乘除 自增自减 (先后赋值还是先后运算)
2、逻辑运算(与 或 非)
3、布尔值的与运算
4、赋值运算
5、关系运算
6、Unicode编码表
7、相等运算
8、条件运算
9、运算符的优先级
10、几种条件(判断)语句
七、JS 循环语句
1、_while循环
2、do_while循环
3、for 循环
4、_foreach 循环
5、。。。
八、对象(结合js数据类型)
来说一下:
js中的数据类型:-String 字符串 -Number 数值 -Boolean 布尔值 -null 空 -Undefined未定义
——以上五种属于基本数据类型(都是属于单一的值,它们之间没有什么联系),如果使用基本数据类型,我们所创建的都是独立 ,不能成为一个整体
以后看到只要不是以上的这几种,其余基本全是对象(Object)
Object属于复合的数据类型(则与上相反)
objec 对象(可以作为一个整体,把我们所有的属性和属性值都装起来 ——好比一个购物车,里面装着很多你购买的东西,而这些东西都是有相互之间的关系的)
对象的分类:
1、内建对象
由ES标准中定义的对象,在任何的ES的现实中都可以使用
比如:Math、 String、Number、Boolean、Function、Object...
2、宿主对象
由JS的运行环境提供的对象,目前来讲主要由浏览器提供的对象
比如:BOM(浏览器对象模型)、DOM (文档对象模型)
3、自定义对象(需要我们自己创建的对象)
由开发人员自己定义的对象
自定义对象(增删改查)
待 未完结。。。