js基础简练

注:本文档隔断以分号{;}为主,分号前面的()是语法结构,后面的解释说明!!

javascript(运行在客户端的脚本语言)

script(脚本)

src(js路径)

Dom(文档对象模型)

Bom(浏览器对象模型)

var(声明变量)

alert();弹框

prompt();用户输入框,一般空号里面要加双引号,因为要用户输入内容,此结果为字符类型

console.log();把内容输出在控制台

console.dir();输出完整属性

//单行注释
/* */多行注释

number(数字类型,包含小数整数)

string(字符串类型,一般用单引或者双引)

boolean(布尔类型,有true[1]和false[0]两个值)

null(空类型,表示赋值为null)

undefined(表示声明变量没有赋值结果为它,转为数字为NaN)

NaN(也是number类型,转为数值时为0,表示不是一个数字,它不等于任何值包括它本身)

isNaN(判断结果不是一个数字,结果为true表示不是数字,结果为false表示是一个数字)

object(对象类型,复杂数字类型)

typeof(变量名);可以判断这个变量为什么类型

Number.MAN_VALUE(最大值5e-324)

Number.MIX_VALUE(最小值1.7976931348623157e+308)

infinty(无穷大)

-infinty(无穷小)

变量名.length;可以获取这个字符串的长度

转义符\b空格;\n换行;\r回车;\反斜杠;'单引号;"双引号;(只针对字符串,要写在字符串引号里面)

控制台报错类型1Uncaught ReferenceError: ee is not defined
;未定义的变量,直接输出变量名2Uncaught SyntaxError:

Unexpected end of input;该行附近有非法字符

字符串+任何类型结果都为一个新字符串(仅对+而言,其他数字符号为数值运算,叫隐式转化) 数值相加,字符相连,加法除了字符

串其他都会转为数值型参与运算例:console.log(true + false); //1

字符串和变量相连(引引加加)例’12’+age+‘zizi’;

其他类型转字符串1,变量.toString();一般在变量有意义时用
2,String(变量);一般在变量没意义时用
3,变量+’’;(常用)

其他类型转数字类型1,parseInt(string);转整数,字母开头会转为nan,点开头会识别为小数,结果为ana
2,parseFloat(string);转小数,以字母开头结果为nan,以点开头会识别为0.某某,
3,Number(变量);转数字,最为严格,处纯数字外,其他结果都为nan
4,用-*/运算符来隐式转换,例:‘12’-0;结果为数字12

其他类型转为布尔类型,Boolean(变量);除了不是0的数字类型以及非空字符串的结果为真(true),其他类型都为假(false)

字面量:也可以叫常量,表示确定的值,一眼能看出来的.或者声明变量并赋值.

标识符:为变量,属性,参数取得名字

关键字:有特殊含义,语义的单词,例:var

保留字:预留的关键字

运算符(操作符 operator):用来计算的符号

表达式:由运算符,操作数,变量等组成的式子,有功能有值,计算结果就是返回值

算数运算符:+加 -减 *乘 /除 %取余(取模) 先乘除再加减,有括号的先算括号里面的

一元运算符:++(递增1) --(递减1) 注意++,–相对于变量前后位置的意义,在前本身先自增(减),再参与运算,在后先用原值参

与运算,再自身自增()

比较运算符(关系运算符):> < ==(判断值是否相等,有隐式转换) =(全等,要值和类型完全相同) >= <= !=(判断值不等) !(

判断值和类型都不等)结果为布尔类型

逻辑运算符:||逻辑或 &&逻辑与(且) !逻辑非(取反) 结果为布尔类型

逻辑中断(短路运算)对数值和表达式来说:&&中条件1为真则返回2,条件1为假则返回1;||中条件1为真则返回1,条件1为假则返回

2;

赋值运算符:= += -= *= /= %=;例var num =1; num+=5;console.log(num);值为6

运算符的优先级:(); 一元运算符 ++ – !;算数运算符:先*/%后±;关系运算符><<=;赋值运算符= !=;逻辑运算符先&&后||;最

后,

流程控制类型:顺序,分支,循环

分支语句(选择语句)1,单分支语句:if(判断条件) { 执行语句};条件为真执行语句;
2,双分支语句:if(判断条件) { 执行语句1}else{执行语句2};
3多分支语句:if(判断条件) { 执行语句1}else iff(判断条件){执行语句2} else if(判断条件){执行语句

2} else{执行语句2};注意:满足条件的只有一个执行,可有n个语句;
4,switch语句:swith(表达式){ case 常量1:执行语句1;break;case 常量2:执行语句2;break;case 常量3:

执行语句3;break;default:(执行语句);break};;说明:用表达式的值先和case后面的常量值相匹配,如果是全等关系,则执行该

case里面的语句,都没匹配上的执行default里的语句…注意:break表示跳出的意思,如果没有该关键字,不管匹不匹配的上都会

向下执行case里的语句,直到遇到break跳出或者遇到}结束.

扩展:分支语句中,一般判断范围时用if else,固定值用swith;

三元表达式:表达式1?表达式2:表达式3;说明:表达式1的结果为真执行表达式2,否则执行表达式3,最后的新结果需要用一个新的

变量装起来,类似if的双分支语句.例:var xin = tim<10 ? ‘0’ + tim : tim;

循环语句:1for循环:for(计数器初始变量;终止条件表达式;递增递减操作表达式){循环语句};说明:计数器出事变量只执行一次

,一般i,j,k及以后的字母定义变量
2双重for循环,即for循环里面套一个for循环,注意:外层循环一次里面循环完整,外层循环控制行数,里层循环控制每行循环个数
3while循环,语法:初始化变量(计数器);while(循环范围){循环体;变量更新i++};说明:初始变量满足循环范围为真值时,执行循

环体,要设置变量更新,否则会死循环.
4do while循环,语法:初始化变量(计数器);do{循环体;变量更新i++}while(循环范围);说明:至少执行一次循环体,再判断真假

后再循环,只到该条件不满足则跳出;
总结:三种方法都可以互换,而while运行结束后初始变量还可以使用,for循环随着循环结束就释放了;

continue关键字(跳出本次循环,继续执行剩余次数,最一般放在循环前面才有效果)
break关键字(代码执行遇到它直接跳出整个循环)

命名规范:1标示符:命名有意义,一般变量名用名词,函数名一般用动词
2操作符:符号两边留空格
3注释:注释后有空格
4命名:遵循驼峰法,不能以数字开头,其他位置可以用数字,可以以$,_来开头.

复杂数据类型之数组(array);
数组:将多个元素(通常是同一类型),按一定的顺序放到一个集合.

创建数组的方式:1通过构造函数创建数组–var arr=new Array();说明:括号里没类容表示创建的一个空数组,new(创

建);Array()是构造函数的意思.arr是数组名
2通过字面量的方式创建数组–var arr=[];说明:[]里没类容表示创建的一个空数组,[]格式的就是数组.[]里的数据叫数组的元

素,数据之间用,隔开;数组里面的类型不限制;

访问数组元素(可以通过索引得到):数组名[2];说明:每个数组下标都是从0开始的.例:console.log(arr1[0]);可以得到数组的

第一个数据.索引从0开始,到长度减一结束,也就是最大索引值就是arr.length-1;

数组长度:arr.length;等于元素个数

遍历数组(就是把数组中的每个数据过一遍):数组加for循环,通过数组下标遍历;注意:因为下标从0开始,初始变量i=0,又因为最

大下标比数据个数小1,所以i<arr.length;

新增数组元素个数:1,修改length长度,例:arr.length5;即把原先的长度设为5;
不给值输出追加的结果为undefined;
2,直接修改索引号来追加元素,例:arr[3]=‘pink’;即追加的新的下标并赋值,此方法如下标被占用追加新的就的替代(覆盖),如

果没占用就是追加全新的元素,如果直接修改变量后的元素值,它就会变成普通变量.

冒泡排序:两两比较,满足条件就交换位置;外层循环控制轮数,内层循环控制每轮的次数,一般轮数比总数少一,次数比轮数少一;

复杂数据类型之函数(把一坨重复的代码进行封装,在需要的时候直接调用,不调用函数,函数不执行);作用:代码的重复使用;

函数语法:1function 函数名(形参) { 函数体—重复的代码};函数调用语法:函数名(实参);注意:function是声明函数的关键

字,全部小写;函数名一般用动词;函数不调用,自己不执行
2函数表达式:var 变量名=function(){};调用:变量名();变量声明的函数(匿名函数)

函数参数:利用函数的参数实现函数重复不同的代码;形参:形式上的参数,用来接受实参,类似数学的x,y;实参:实际参数;当实参

个数等于形参,结果为正常的.当实参的个数大于形参个数,结果取决于形参的个数,当实参个数小于形参的个数,结果为nan;

函数的返回值(return);函数执行过程中遇到返回值会终止函数,teturn只能返回一个值,想输出多个结果,可以用数组将结果依

次存入,实际中常定义一个变量接受函数的返回值阿

argaments的使用:只有函数中有这个内置对象可以存储用户传递的所有实参,存储形式的一个名字叫argaments的伪数组(具有数

组length属性的索引值,没有真正数组的方法例pop();pash()😉

js的作用域(js代码(名字)在某个范围内起的效果),为了提高程序的可靠性,减少命名冲突.

js的作用域(es6):1全局作用域:整个script标签,或者一个单独的js文件;2局部作用域(函数作用域):在函数内部也只在函数内

部起效果

变量的作用域:1全局变量:在全局作用域下变量可进入局部作用域;在函数内部没有声明只赋值的变量.2:局部变量:在局部作用

域下变量不可进入全局作用域;

从执行效率来看变量的作用域:全局变量只有浏览器关闭才消耗;局部变量当程序执行完毕就销毁.

块级作用域:{};外部不能调用,js中无块级作用域

作用域链:内部函数访问外部函数的变量,采取链式查找的方式确定取哪个值,(采取就近原则)

js的预解析:js代码通过js解析器执行,先预解析在执行代码构造

预解析:变量声明,函数声明会提到当前作用域最前面,但不赋值

代码执行:按书写顺序从上往下执行

复杂数据类型之对象:有特征和行为,具体特指的一个事物,所有的数字.字符.数组都是对象

对象有属性(特征)
,方法(行为.动作)

为什么需要对象:保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。如果要保存一个人的完整信息呢?

创建对象的三种方式:1字面量的方式(就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法。{ } 里面采取键

值对的形式表示)–var obj={};–创建了一个空对象;例:var obj={name:‘张三’,age:18,sayHi:function(){console.log('唱

歌’)}};其中name叫属性名,sayHi叫方法名;对象的调用
;对象里面的属性调用 : 对象.属性名 ,这个小点 . 就理解为“ 的 ”; 对象里面属性的另一种调用方式 : 对象[‘属性名’

],注意方括号里面的属性必须加引号,我们后面会用; 对象里面的方法调用:对象.方法名() ,注意这个方法名字后面一定加

括号
2,利用new Object创建对象:var andy = new Obect();Object() :第一个字母大写;new Object() :需要 new 关键字;追加属

性的格式:对象.属性 = 值;(注意等号赋值分号隔开和1区别)调用和1相同
3, 利用构造函数创建对象: function 构造函数名(){ this.属性=值;this.方法=function(){}}调用:new 构造函数名() 构造

函数名首字母要大写; 构造函数 :是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 运算

符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。注意1. 构造函数约定首字母大写

。2. 函数内的属性和方法前面需要添加 this ,表示当前对象的属性和方法。3. 构造函数中不需要 return 返回结果。4. 当

我们创建对象的时候,必须用 new 来调用构造函数。

使用构造函数要时要注意以下两点:构造函数用于创建某一类对象,其首字母要大写构造函数要和 new 一起使用才有意义

构造函数和对象:构造函数,如 Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class);创建对象

,如 new Stars(),特指某一个,通过 new 关键字创建对象的过程我们也称为对象实例化

new关键字:new 在执行时会做四件事情:1. 在内存中创建一个新的空对象。2. 让 this 指向这个新的对象。3. 执行构造函数

里面的代码,给这个新对象添加属性和方法。4. 返回这个新对象(所以构造函数里面不需要return)。

遍历对象:for(var k in obj){};k属性名obj[k]属性值

变量、属性、函数、方法总结:变量:单独声明赋值,单独存在;属性:对象里面的变量称为属性,不需要声明,用来描述该对

象的特征;函数:单独存在的,通过“函数名()”的方式就可以调用;方法:对象里面的函数称为方法,方法不需要声明,使用

“对象.方法名()”的方式就可以调用,方法用来描述该对象
的行为和功能。

构造函数身上又分实例成员和静态成员,通过this添加的加实例成员只能通过实例访问,通过构造函数添加的加静态成员,只能通
过构造函数访问

结语:遇见即是缘分,感谢阅读,有错之处还望指正0.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值