初学JavaScript

1.JavaScript的概念

JavaScript用于网页和用户之间的交互,javascript由语言基础BOMDOM组成。

语言基础包括函数,作用域,运算符,条件,循环等。

DOM 是Document Object Model( 文档对象模型 )的缩写。

BOM即 浏览器对象模型(Browser Object Model)。

2.JavaScript的语言基础

1.javascript的御用标签script标签和css的style标签类似,script标签一般放在head标签内。若有多段script标签是不会换行的。

2.大型项目中,javascript的代码过多时,一般通过调用外部文件来实现代码的美观性。即在html标签内调用。

注:在javascript文件中不必再使用script。

3.javascript的调试方法和纠错方法

一般初学者推荐使用记事本来编写,而在记事本编写时会出现错误时,我们应该学会调试。下面我们介绍两种调试方法。

1)使用alert进行调试

alert(1)会弹出对话框,若里面内容为1则说明以上的代码是正确的,通过移动alert(1)的位置,来缩小错误的位置。

2)使用浏览器进行调试(以firefox为例)

快捷键F12,出现console页面,输出错误和调试信息

注: 可能第一次F12是看不到错误的,因为错误已经发生了,才打开了F12。 所以使用快捷键F5刷新一下当前页面,就可以看到控制台报出了错误的原因。

JavaScript一旦某一位置的代码发生错误,则其以下的代码都将无法运行。

JavaScript提供了一种try catch的错误处理机制,当有错误抛出的时候,可以catch住。这些之后的代码便能够继续运行。

try{发生错误的代码},catch(err){可有可无}。

4.变量

var加变量名,var可有可无。

变量的不同类型

以下变量都是动态类型(即var)

1.undefined,声明但未赋值。var x;

2.boolean,布尔类型。var x=true/false;

3.number,数字类型。var x=10 ;

4.string,字符串类型。var x=hello;

5.对象。后面再说。

判断变量类型,使用typeof,

例:document.write("类型是:"+typeof x)。具体意思我们后面再说。

所有的变量都是“伪对象”(这里不做介绍),具有属性。

使用length可以获取其长度。例:var a=hello document.write(a.length)。

所有基本变量类型都可以相互转化。

1.转化为字符串

toString,将其他类型转化为字符串。例: var a=10 document.write(a.toString)。

注:当数字转化为字符串时,有两种模式。默认模式和基模式。默认模式则转化为十进制,基模式可以转化为其他进制。例:a.toStribng(数字(进制数))。

 String也可以将其他类型转化为字符串。但是在转化null(空对象)的时候,String会出现错误,导致后面的代码都无法执行。

2.转化为数字

内置函数parseInt()和parseFloat()。parseInt转化为整数,parseFloat转化为浮点数。

这两个函数会一直定位数字,直到出现字符结束,若转化的字符串开头是字母,则会得到NaN(Not a Number)。

例:document.write(parseInt(10a3);结果为10; document.write(parseInt(a3);结果为NaN。

内置函数Number()。若转化的字符串中既有数字和字母,则会得到NaN(Not a Number)。

例:document.write(Number(10a3);结果为NaN。

3.转化为布尔

内置函数Boolean(),当转换字符串时:非空即为true;当转换数字时:非0即为true;当转换对象时:非null即为true。

运行结果:

5.函数

学过c,c++,java的都应该会理解。

函数包括定义和调用。

function 函数名(参数){内容,根据参数确定是否有返回值}进行调用;函数名(变量)进行调用。

例:   运行结果:

参数具有作用域,超出函数就看不见参数。通俗来说,就是各个函数是单独,函数内定义的局部变量,其他函数无法调用,而全局变量则不会。

6.运算符和结构

没错,JavaScript也有运算符,算数运算符和逻辑运算符。结构有条件结构和循环结构。

这些不必多说,学过编程语言(C,C++等)的应该都知道。但我们这要额外介绍一个逻辑运算符,绝对等和绝对不等。

===、!==,这和==和!=的区别在于前者不但判断变量数值而且还有变量类型是否相同,也就是之前所说的变量类型。

条件结构即if,else if,else和switch语句,循环结构即while,do while,for语句以及结束循环的continue,break。不过循环中增加了增强型循环语句,大家可以去参考Java。

7.对象

首先,对象和数据类型相似但是不一样。对象包括数字(Number),字符串(String),数组(Array),日期(Date),Math和自定义几类。

通过new+类型名。

如:var  x = new Number(123)新建数字对象。

数字对象的属性包括最大值和最小值。通过Number.Min_VALUE和Number.Max_VALUE

可知Number对象的最小值:5e-324Number对象的最大值:1.7976931348623157e+308

之前介绍过NaN,这里还有不一样的意思。若在新建数字对象时,采用的不是数字,则会输出NaN。如:var  x = new Number(“123abc”)

但是我们判读是否位数字应该使用isNaN函数,是则返回true,否则返回false。

下面介绍输出小数表达,科学记数法表达。

如:var  x = new Number(123)

document.write(a.toFixed(2(小数的位数)));

运行结果:123.00

document.write(a.toExponential());

运行结果:1.23e+2

要想返回数字对象的基本类型,可使用valueOf()将对象转化为数字类型

如:var  x = new String(”abc“)新建数字对象。

字符对象和字符数据类型一样,也有长度。通过x.length返回字符串对象的长度。

字符对象还有很多功能。

返回指定位置的字符:x.charAt(位置)返回指定位置的字符,x.charCodeAt(位置)返回指定位置的字符对应的ASCII码

字符串拼接:concat将两个字符串对象连接起来x.concat(y)把y连接到x的末尾。

子字符串出现的位置:indexOf返回子字符串第一次出现的位置,lastIndexOf返回子字符串最后一次出现的位置。x.indexOf/lastIndexOf(子字符串)。

比较两段字符串是否相同:x.localeCompare(y),0 表示相等,1 表示字母顺序靠后,-1 表示字母顺序靠前(均为x相对于y)。

截取一段子字符串:x.substring(0,3)截取0到3的字符串(字符串以0开始)。

根据分隔符,把字符串转化为数组:x.split(" ",长度(可选)),将x转化为数组。

替换子字符串:x.replace("子字符串","子字符串"),若出现相同的子字符串,一般替换第一个。若要都替换则,

x.replace(/子字符串/g, "子字符串");或者var regS = new RegExp("子字符串","g");x.replace(regS, "子字符串");

返回基本类型:所有返回字符串类型的方法即字符对象定义后发生字符类变化,返回的都是基本类型的String。

如:var  x = new Array()新建数组对象

创建数组对象的3种方式:
1. new Array() 创建长度是0的数组
2. new Array(5); 创建长度是5的数组,,但是其每一个元素都是undefine
3. new Array(3,1,4,1,5,9,2,6); 根据参数创建数组

数组也有长度,和字符串获取长度一样,通过x.length。

遍历数组:采用循环遍历数组

连接数组:concat将两个数组对象连接起来x.concat(y)把y连接到x的末尾。

根据分隔符,把数组转化为字符串:x.join(),括号内的内容会分隔数组内的元素。

插入数据和获取数据:push pop,分别在最后的位置插入数据和获取数据(获取后删除)

                                    unshift shift ,分别在最开始的位置插入数据和获取数据(获取后删除)

var x = new Array(3,1,4)

x.push(5)将5插入到数组的最后,得到3,1,4,5

x.pop()将最后的4删去,得到3,1

x.unshift(5)将5插入到数组的开头得到5,3,1,4

x.shift()将开头得3删去得到1,4

数组排序:x.sort()进行排序,默认按照从小到大的顺序

若要自定义排序(按照由大到小的顺序排列),就把比较器函数作为参数传递给sort(),

function comparator(v1,v2){

return v2-v1; //v2-v1表示大的放前面,小的放后面

}

x.sort(comparator)即可实现。

数组反转:x.reverse()对数组内的元素倒序输出。

获取子数组:x.slice(start,end),start从第几元素开始,end到第几元素结束。

删除和插入数组元素:x.splice(start,num),start从第几元素开始,删除num个元素。若num后面还有参数则表示插入具体的参数。

如:var  x = new Date()新建日期对象

获取当前的年月日:x.getFullyear(),x.getMonth()+1(0代表1月份),x.getDay()。

获取时分秒毫秒:x.getHours(),x.getMinutes(),x.getSeconds(),x.getMilliseconds()。

获取星期:(0代表星期天)

var day=new Date().getDay(); //通过日期对象获取数字形式的星期几

var weeks = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六");

weeks[day]得到星期。

修改日期和时间:x.setFullyear(),x.setMonth(),x.setDay()。x.setHours(),x.setMinutes(),x.setSeconds(),x.setMilliseconds()。括号内为想要修改的数字,月份要格外注意哦。

如:var  x = new Math()新建数学对象

数学对象即自然对数,圆周率,绝对值,最大最小,幂等等

自然对数:Math.E

圆周率:Math.PI

绝对值:Math.abs()

最小值最大值:Math.min(),Math.max()

幂:Math.pow()

四舍五入:Math.round()

产生随机数:Math.random()(是产生0~1的随机数,如需产生其他范围的随机数,则需要通过运算来进行改变)。

如:var  x = new Object()新建自定义对象

自定义对象需要给对象取一个名字,x.name = 值,之后则只需要调用它的名字进行操作x.name。

不过,new Object创建对象有一个问题是,没创建对象都要重新定义属性和函数,代码的重用性不高。

我们采用function设计一种对象。

定义:function x(参数){},调用:var y= new x(参数)。

若你想在之前的对象上追加对象,需要用到prototype,x.prototype.z{}即可。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值