js基础





Js基础

一、js的介绍

1、js的组成

ECMAScript 是JavaScript的语法规范,DOM是JavaScript操作网页上元素的API,BOM是JavaScript操作浏览器部分功能的API

2、js标签

<script src=”” async=”async”></script> 或defer
    async 异步 立即异步下载外部js,不影响页面其他操作,js下载完毕立即执行,Defer 值可以省略,脚本延迟到文档完全被解析和显示后再执行,只有外部的脚本可以使用

二、js变量和数据类型

1、变量

变量的声明:使用var来声明变量,赋值时确定其数据的类型;

局部变量必须用var声明,全局变量可以用var,也可以不用var;变量名前不加var一定是全局变量

2、数据类型

简单数据类型(基本):number、string、boolean、undefined、null

复杂(引用)数据类型:object、array、date

1)基本包装类型:String Number Boolean

a数值类型(number)包括整型和浮点型;

b字符串(String)js没有字符的概念,用单引号或双引号括起来;

c布尔类型(boolean);

d空类型(null)代表空,代表没有值,什么类型都不是;

e未定义(undefined)使用了一个未赋值的变量或者是使用了一个不存在的对象的属性时,才返回undefined;

f复合数据类型(引用类型):对象(window/document)、数组(可以是任意数据类型);

g用typeof()可以判断数据的类型,特殊:用typeof判断null值返回object,目的是向下兼容

Var num=new Number(“1”);此时num是基本包装类型 如果varnum=Number(“1”);则num是基本类型

基本数据类型不能调用属性和方法,对象可以调用属性和方法

查看数据类型 typeof()

3、命名规则

区分大小写;注释:单行//  多行/* */;语句行:以;分隔,也可以不加分号自然行分隔;

变量的定义:无论什么类型都用var来定义变量,也可以不定义直接使用

变量的命名:数字、字母、下划线、$符号,不能以数字开头

5)JavaScript中的输出语句:

alert(字符串) 弹出提示框(确定)

Window.alert() 弹出一个只包含“确定”按钮的对话框,显示字符串内容,无返回值

confirm() 弹出个确认框(确定,取消)按确定,返回true;按取消返回false

prompt() 弹出个输入框,让你输入东西,包含确定和取消

Window.prompt 参数有两个,第一个参数显示提示输入框的信息,第二个参数,用于显示输入框的默认值,返回用户输入的值

document.write()

Write(“信息”):向文档中写内容,可包含文本与 其他标签

判断返回值的类型 typeof;js中没有字符类型

console.log()  console.info()  console.print()

4、运算符

优先级从高到低

()优先级最高

一元运算符:++   --  !

算术运算符  先* / % 后+ -

关系运算符  >  >= < <=

想等运算符 ==  != ===  !==

逻辑运算符:&&  ||

5、循环、判断

if  while  for  do...while

还有continue(退出当前循环,执行之后的循环)以及break(立即跳出循环)

6、数组

一维数组特点:长度可变;元素类型任意

var 数组名=new Array(元素0,元素1...);

var 数组名=new Array();

var 数组名=[元素0,元素1,...]

数组中的方法:

concat() 拼接两个数组,返回一个新的数组

join()返回一个新的数组,参数是字符串,相当于更改连接符

reverse()将元素反转

sort()将元素由小到大按照字典顺序排序

toString()以字符串输出所有元素

slice(start,[end])以数组形式取出对应的元素,不包含end对应的元素

pop与push:pop移除最后一个元素并返回该元素值;push将一个或多个原色添加到数组结尾,并返回数组新长度,如果添加的是数组则先用逗号,将该数组的各元素连接起来再添加。

注意冒泡排序(重点)

三、js中的函数

1、函数定义的两种方式:

函数声明:function 函数名(){}  

函数表达式:var 函数名=function(){}

注意:函数由关键字function定义;函数必须先定义后使用,否则将出错;函数名是调用函数时的名称,区分大小写

函数的参数:可以是常量,也可以是变量,不用var定义

函数的返回值:return语句用于返回表达式的值,也可以没有

函数调用的时候,可以直接使用函数名进行调用,也可以由window对象来调用

2、内建函数

Number(字符串) 用于将字符串转换成数字,若参数无法转换成数值,则返回NaN

isNaN()用于测试指定的数字串是否为数值,返回true则不是数值,false是数值

parseInt()剖析数字字符串并返回指定进制的整数,parseInt(“字符串”,[进制]),剖析过程中遇到不合法字符,返回已经剖析过的数值。如果开始就遇到不合法字符,会返回NaN

parseFloat() 剖析数字字符串并返回浮点数

eval() 就收字符串参数,将最后结果以上下文环境执行,并返回执行结果

boolean对象

3、重点注意

false对象:数值0、NaN、undefined、空字符串””、-0、null

浮点数的加减结尾都有小数点;

Max_value最大值  min_value最小值 Infinity无穷大

字符串的不可变:当字符串被赋值后,会在内存中开辟空间,但是当重新赋值后,又会开辟新的空间

几乎所有的值都有toString()方法,除了undefined、null

转换成字符串的三种方法:toString()、String()函数、字符串拼接,

toString()与String()函数的区别:String()可以将undefined、null转换成字符串

转换成数值类型:number()如果有不是数值的字符返回NaN、parseInt()、parseFloat()  parseFloat()只能解析10进制

JavaScript中不允许定义同名的函数,也就是说不允许重载,会覆盖掉原来的方法

4、匿名函数:

没有命名的函数,一般用在绑定事件的时候  语法:  function(){}

自调用函数:(function(){alert(“hekllo”)}){}

三、js中的预解析

面试题:

Javascript中的解析器:

预解析:全局作用域

先找var、function和参数,找到var和function之后,会把var和function提前,然后再从上到下一行一行执行代码

预解析:执行到函数后,会进入到局部作用域,然后预解析再从上到下一行一行执行代码

Var a=b=c=9;这样解析的过程中 a是局部变量,b和c是全局变量

变量提升:

定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升

函数提升:

JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面

总结:

预解析:在解析之前完成;预解析的时候变量的声明和函数的声明会提升(提前),变量的赋值不会被提升;如果变量在函数内部声明,提升的时候只能提升到函数内部的最上面(不能出去);预解析的时候如果在多对的script中出现了同名的函数,相互之间没有影响

四、js中的对象和类

1、对象

var student=newObject();

2、json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值