JavaScript基础总结

 JavaScript高级的学习在于对象的学习,而这些的基础就是JavaScript基础了,所以在学习高级之前先将JavaScript基础部分复习一下吧.

第一部分:变量

变量是贯穿了JavaScript学习和应用的每个方面,在变量部分我们需要掌握以下几个方面:


1 变量作用域

变量的作用域分为两个:全局作用域和局部作用域

全局作用域:指script标签下的全局范围内.

全局变量:指在script标签根节点声明的变量为全局变量,或者window.变量的方式获取的变量也为全局变量,或者函数中未被声明的变量会进行隐式声明成全局变量.

局部作用域:指函数内部范围.

局部变量:指在函数内部声明的变量.


2 变量的声明提前


在html页面加载html代码时,会先将变量的声明提升至变量对应作用域的最前面.


也就是说如果在变量声明赋值之前调用变量的话,只能获取到变量但是无法获取到变量的赋值,返回的undefined.


3 变量的调用


变量的调用需要注意两点:


1. 局部作用域调用变量时,先查找是否存在对应变量名的局部变量,如果没有就去全局中找对应变量名的全局变量.


2. 函数中发生隐式声明的全局变量,需要先调用函数后才能在全局作用域中读取到该变量.


第二部分:数据类型


JavaScript中注意的数据类型分为基本类型和复杂类型,每个包含和注意的部分有许多,其中我们需要注意的有:


1 数据类型分类


基本类型:数组,字符串,布尔,null,undefined.


复杂类型:对象类型(键值对的集合):window,document,数组,正则,函数等


2 检测数据类型


我们可以使用typeof检测不同类型的数据,但是其中有几个是特殊的.


null检测到数据类型是"object",function检测到数据类型是"function".


其他的对象的数据类型都是"object",还有基本数据检测到的是对应的数据类型.


3 数据类型转换


类型转换中最主要的是数字和字符串的相互转换.


数字转字符串:toString(),+"",String().


字符串转数字:Number(),perseInt(),parseFloat().


4 值类型和引用类型的传递


值类型就是基本数据类型,引用类型就是复杂数据类型,两者的值传递是不同的.


值类型的传递:发生传递时是将一个变量中的值复制一份给另一个变量.


引用类型的传递:发生传递时是将指向对象的地址引用给另一个变量.


第三部分:运算符


运算符类型很多,我们不止需要知道有哪些运算符,还需要知道每个运算符对应的功能是哪些.


1 算术运算符:+,-,*,/,%,++,--


注意:++a:先自加后参与运算


  a++:先将原值参与运算,后自加

2 赋值运算符:=,+=,-=....


3 比较运算符


== 会进行隐式数据类型的转换,再判断值,并不考虑数据类型


=== 不会进行隐式数据类型的转换,先判断数据类型后再判断值


4 逻辑运算符


&&:如果左边的值为真值的话,直接返回右边的值;如果左边的值为假值的话,直接返回左边的值.


||:如果左边的值为真值的话,直接返回左边的值;如果左边的值为假值的话,直接返回右边的值.


注意:

转换为布尔为假的值有:0,false,null,undefined,NaN,""


5 三元运算符


判断语句?成立时输出的值:不成立时输出的值;


第四部分:语句


语句主要包含以下几个:


选择语句:if,if..else,if..elseif..else,switch(){case}


循环语句:while,do..while,for,for..in


语句的使用需要根据实际情况而定,在功能满足的情况下,视具体情况将语句进行简化.


第五部分:函数


函数的使用主要是函数的参数,返回值,和函数的声明


1 函数的参数


函数的参数分为形参和实参:


形参:指的是函数声明时定义的函数内部需要用到的参数.


实参:指的是函数调用时传递给函数的参数.


2 返回值


返回值的存在与否决定于return


如果函数内没有return护足return后没有需要返回的值,则我们获取到的返回值为undefined.如果return后有值,则获取到的返回值就是这个值.


注意:return后除了声明的语句以外都不在执行,原因是声明语句会被提升至作业域的最前面


3 函数声明提升


函数声明也会像变量声明一样被提升至作用域的最前面,但是如果函数声明和变量声明同时被提升时,会先提升变量声明后提升函数声明.

posted @ 2016-09-21 22:15  5毛钱小辣条  阅读(170)  评论(0编辑  收藏  举报