JS学习第二天----JS语言核心

JS语言核心

 

 

有些东西,对于初学者来说,可能看不懂,我在这里只是想说一下,JS里面有这么个情况,并不是说让你掌握,你只需要大致浏览一下就可以了.

// 所有在双斜杠之后的内容都属于注释

//变量是表示值的一个符号名字

//变量通过var关键字来声明,案例:

var x;//声明一个变量x

 

//值可以通过等号赋值给变量

x=0;  //现在变量x的值为0

x //=>0:通过变量获取其值

 

//JS支持多种数据类型

x=1; //数字

x=0.01; //整数和实数公用一种数据类型

x=”hello world”; //由双引号内的文本构成的字符串

x=’JavaScript’; //单引号内的文本同样构成字符串

x=true; //布尔值

x=false; //另一个布尔值

x=null; //null是一个特殊的值,意思是”空”

x=undefined; //undefinednull非常类似

 

JS中有两个非常重要的数据类型分别是对象和数组.

 

 

//JS中最重要的类型就是对象

//对象是名/值对的集合,或字符串到值映射的集合,案例:

var book={ //对象是由花括号括起来的

topic:”JS”, //属性topic的值是JS

fat:true //属性fat的值是true

}; 右花括号标记了对象的结束,记得分号

 

//通过”.”或者”[]”来访问对象属性

book.topic //=>”JS”

book[“fat”] //=>true:另外一种获取属性的方式

book.author=”syx”;//通过赋值创建一个新属性

book.contents={}; //{}是一个空对象,特没有属性

 

 

//JS同样支持数组(以数字为索引的列表)

var primes=[2,3,4,5]; //拥有四个值的数组,”[”和”]”划定边界

primes[0] //=>2:数组中的第一个元素(索引为0)

primes.Length //=>4:数组中的元素个数

primes[primes.Length-1]  //=>5:数组中队后一个元素

primes[100]=99  //通过赋值来添加新元素

primes[100]=-99 //或通过赋值来改变已有的元素

var expty=[]; //[]是空数组,它具有0个元素

empty.Length //=>0

 

//数组和对象中都可以包含另一个数组或对象,案例:

var points=[ //具有两个元素的数组

{x:0,y:0}, //每个元素都是一个对象

{x:1,y:1}

];

 

var data={ //一个包含两个属性的对象

trial1: [[1,2],[3,4]],//每个属性都输数组

trial2: [[2,3],[4,5]]//数组的元素也是数组

};

上述代码通过方括号定义数组元素和通过花括号定义对象属性名和属性值之间的映射关系的语法称为初始化表达式.所谓的表达式是JS中的一个短语,这个短语可以通过运算得出一个值.通过点号(.)和方括号([])来引用对象属性或数组元素的值就构成了一个表达式.另外注释中的箭头(=>)表示表达式的运算结果.

 

JS中最常见的表达式写法是像如下案例一样使用运算符:

//运算符作用域操作数,生成一个新的值

//最常见的是算术运算符

 

3+2  //=>5:加法

3-2 //=>1:减法

3*2 //=>6:乘法

3/2 //=>1.5”除法

points[1].x-points[0].x  //=>1:更复杂的操作数也能照常工作

“3”+”2” //=>”32”:+可以完成加法运算符也可以作字符串连接

 

//JS还定义了一些算术运算符的简写形式

var count=0; //定义一个变量

count++; //自加1,++count的效果一样,同理还有自减

count*=2; //自乘2,相当于count=count*2

 

 

//相等关系运算符用来判断是否相等

//不等,大于,小于运算符的运算结果是truefalse

 

var x=2,y=3; //这里的等号(=)是赋值的意思,不是比较的意思

 

x==y //=>false:相等操作符

x!=y //=>true:不等运算符

//同理还有<,>,<=,>=

“one”==”two”  //=false:两个字符串不行等

“two”>”one” //=>true:”t”在字母表中的索引大于”o”

false==(x>y) //=>true:falsefalse相等

 

 

//逻辑运算符是对布尔值的合并或求反

(x==2)&&(y==3) //=>true:两个比较都是true,&&表示”与”

(x>3)||(y<3) //=>false:两个比较都不是true,||表示”或”

!(x==y) //=>true:!求反

 

 

如果JS中的”短语”是表达式的话,那么整个句子就叫做语句,以分号结束的行均是一条语句.实际上,语句和表达式之间有很多共同之处,粗略的讲,表达式仅仅计算出一个值但并不做任何操作,他并不是改编程序的运行状态.而语句并不包含一个值(或者说它包含的值我们不关心),但语句能改变程序的运行状态.比如有一类语句叫做”控制语句”.

 

函数是带有名称和参数的JS代码段,可以一定定义多次使用.案例:

function plus1(x){ //定义了名为plus1的一个函数,带有参数x

return x+1; //返回一个比传入的参数大的值

} //函数的代码块是由花括号包裹起来的部分

var y=3;

plus1(y) //=>4:y3,调用函数的结果为3+1

 

var square=function(x){ //函数是一种值,可以赋值给变量

return x*x; //计算函数的值

} //分号标示了赋值语句的结束

square(plus1(y)) //=>16:在一个表达实例调用两个函数

注释:这里的”名称”是指函数具有固定标识,并不是指函数变量的名称.

 

 

//当函数赋值给对象的属性,我们称为”方法”,所有的JS对象都含有方法

 

var a=[]; //创建一个空数组

a.push(1,2,3); //push()方法像数组中添加元素

a.reverse(); //另一个方法:讲述组元素的次序反转

//我们也可以定义自己的方法,”this”关键字是对定义方法的

//对象的引用:这里的例子是上面提到的包含两个点位置信息的数组

 

points.dist=function(){ //定义一个方法来计算两点之间的举例

var p1=this[0]; //通过this获得对当前数组的引用

var p2=this[1]; //并取得调用的数组前两个元素

var a=p2.x-p1.xl; //x坐标轴上的距离

var b=p2.y-p1.y; //y坐标轴上的距离

return Math.sqrt(a*a+b*b); //勾股定理,使用Math.sqrt()来计算两点之间的距离

}

points.dist() //=>1.414:求得两个点之间的距离

 

 

 

现在给出一些控制语句的而梨子,这里的实例函数体内包含了最常见的JS控制语句:

//这些JS语句使用该语法包含条件判断和循环

//使用了类似C,C++,JAVA和其他语言的语法

 

function abs(x){ //求绝对值的函数

if(x>=0) //if语句

{

return x; //如果比较结果为true则执行这里的代码

} //子句的结束

else{ //if条件不满足时执行else子句

return -x //如果分支中只有一条语句,花括号是可以省略的

} //注意if/else中嵌套的return语句

}

 

 

 

function factorial(n){ //计算阶乘的函数

var product =1; //product赋值为1

while(n>1){ //()内的表达式为true时循环执行{}内的代码

product*=n; //"product=product*n;"的简写形式

n--; //"n=n-1;"的简写形式

} //循环结束

return product; //返回product

}

 

factorial(4) //=>24:1*4*3*2

 

 

function factorial2(n){ //实现循环的另一种方式

var i,product=1; //rpoduct赋值为1

for(i=2;i<=n;++i) //i2自增至n

product*=i; //循环体,当循环体重只有一句代码时,可以省略{}

return product;//返回计算好的阶乘

}

factorial2(5) //=>120:1*2*3*4*5

 

 

JS是一种面向对象的编程语言,但和传统的面向对象又有很大区别.

 

//定义一个构造函数以初始化一个新的Point对象

function Point(x,y){ //按照惯例,构造函数均以大写字母开始

this.x=x; //关键字this指代吃书画的实例

this.y=y; //将函数参数存储为对象的属性

} //不需要return

 

 

//使用new关键字和构造函数来创建一个实例

var p=new Point(1,1); //平面集合中的点(1,1)

 

//通过给构造函数的prototye对象赋值来给Point对象定义方法

Point.prototye.r=function(){

return Math.sqrt(this.x*this.x+this.y*this.y)  //返回x*x+y*y的平方根,this指代调用这个方法的对象

}

 

 

//Point的实例对象p(以及所有的Point实力对象)继承了r()

p.r() //=>1.414...

 

 

 

JS案例:

JS Loan Calculator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Apply for your loan with one if there fine lenders:

Enter Loan Data: Loan Balance,Cumulative Equity,and Interset Payments
Amount of the loan($):
Annual interest(%):
Repayment period (years): 
Zipcode (to find lender) : 
Approximate Patments:  Calculate
Monthly payments:  $
Total payment :  $
Total interest: $
Sponsors :

 

 

 

 

 

分析:

req.send(null); //不带任何正文发送这个请求,这句话有错误,但是不耽误程序的运行,不知道为啥有错误,大神求解

为什么上来就来这么一个案例呢,我想告诉你,别小看任何一门语言,JS能实现其他语言实现不了的东西,JS有它独特的魅力,在生活中也是一样,永远不要轻易的看不起别人,蔑视别人.

你可能感兴趣的:(javascript)