您的位置:首页 > Web前端 > JavaScript

JavaScript-基础语法(2)

2014-11-27 20:13 211 查看
if语句

var a = 3;
if(a==4){
alert("yes");
}else{
alert("no");
}//no,但是改一下,if(a=4),会打印yes,a被赋值为了4,!0
// 所以一般都是常量放左边,if(4==x),如果删=,就会报错


其余的和java是一样的

switch语句

和java用法相同,只是这个接收的类型多

关于switch和if的使用:

如果是一个区间,或结构运算完是boolean型的进行判断的时候用if

如果对几个固定的值进行判断的话,可以用switch,它一加载,语句会进内存,答案可在内存中进行选择。

循环语句:

var x = 1;
document.write("<font color='blue'>");
while(x<5){
//alert("x="+x);
// document.write("<font color='blue' /> x = "+x+"</font><br/>")//将数据写到当前页面
document.write("x = "+x+"<br/>");
x++;
}
document.write("</font>");

for(var i = 0;i<5;i++){//别写顺手了。写成int i
document.write("i = "+i+"<br/>");
}

w:for(var i = 1;i<3;i++){  //w是标号,
for(var j = 1;j<3;j++){
document.write("i = "+i);
break w;//跳出的标号所在的循环
}
}


数组:

Js的数组定义了两种方式:

1. var arr = [1,2,3],var brr = [];

2.var arr = new Array();

//第一种
document.write("======================================<br/>");
var arr = [1,2,3];
// alert(typeof(arr));//对象类型,object
// alert("len="+arr.length);//数组长度
arr[1] = 250;
arr[4] = 666;//Js数组特点,数组长度是可变的
arr[2] = "hello";
arr[5] = true;//Js数组特点,元素类型任意
for(var i = 0;i<arr.length;i++){
document.write("arr["+i+"]="+arr[i]+"<br/>");
}
//PS:数组操作最好存储同一类型
document.write("======================================<br/>");

//第二种
//var brr = new Array();//相当于var arr = [];
//var brr = new Array(10);数组定义,并长度是10
var brr = new Array(10,9,8,7,6);//数组定义,元素是10,9,8,7,6
document.write(brr[2]+"<br/>");


函数:

定义格式:通过指定的关键字来定义 

function 函数名(参数列表)

函数体

return 返回值;(如果没有具体的返回值,return 可以省略)
function sum(x,y){//因为是未知内容,所以不需定义var
return x+y;
}
alert(sum(3,1));//掉用


细节:

1.只要使用了函数的名称,就是对该函数的调用

2.函数中有一个数组(argument),在对传入的参数进行存储

  
function sum(x,y){
alert(x+":"+y);
}
sum();
sum(3);//3:undefined,可见Js不存在重载,函数定义几个参数,就该传递几个

function add(x,y){
alert(arguments.length);//5
for(var i = 0;i<arguments.length;i++){ //注意for循环体,定义的变量不要与参数相同
document.write(arguments[i]+"<br/>");
}
}
add(1,2,3,4,5);


3.

function sum(x,y){
return 100;
}
var he = sum();//如果var he = sum;,会弹出sum函数的代码
alert("he = "+he);
var hee = sum;
alert(hee);//想当于alert(sum)
alert(hee(1,3));//100
function show(){
alert("run");
}
alert(show());//打印 run  ,  undefined


Js是基于对象的,所以底层都是对象,函数名实际上就是底层对象名,var he = sum();正常返回100,如果没写括号,会直接把对象引用sum的地址赋值给he,也就是函数对象具有了两个函数名,再执行alert,如果he指向的是对象,那么以字符串形式打印,就是该函数的代码定义格式

动态函数:
   * Js的动态函数

            * 使用的是JS中内置的一个对象Function

            * 但是用的不是很多,一般还是普通函数

            * 参数列表,函数体都是通过字符串动态指定的

            * 而普通函数的参数列表和函数体已经写死了,无法改变

            */

function add(x1,y1){
return x1+y1;
}
var add1 = add(1,2);
alert(add1);

var result = new Function("x,y","var sum; sum = x+ y;return sum;");
var sum = result(1,2);
alert("sum = "+sum);


匿名函数:

//匿名函数:没有名字,函数的简写形式

 
var result = function (a,b){
return a+b;
}
alert(result(1,2));
/*==================================*/
function H(){
alert("H");
}
var  HH = H();
/*简写形式如下*/
var hh = function(){
alert("H");
}


quantum变量和局部变量:

Js的全局变量与Java有极大的不同
<script type="text/javascript">
for(var x = 1;x<5;x++){
document.writeln("x = "+x);
}
document.writeln("x = "+x);
</script>
<script type="text/javascript">
document.writeln("x = "+x);
</script>


//for中定义的x的作用域,不仅仅是它所在的局部<script>片段中有效,可以简单的理解为在整个页面都效

Js的局部变量:
<script type="text/javascript">
function show(){
var x = 1;//函数里定义的变量是局部的
}
document.writeln("x = "+x);//访问不到
</script>


PS:在脚本中定义的变量是全局的,在函数中定义的变量是局部的,最好是有区别的定义,避免出现一些不必要的问题

var x = 3;//全局的x
function show(x){
x = 8;//局部变量的x
}
show(x);
document.writeln("x = "+x);//3


Js的常见对象:

1.Object:所有对象的god

方法:

(1).toString():将对象变成字符串
function show(){
alert("run");
}
alert(show.toString());
var arr = [1,2,3,4];
alert(arr.toString());//toString,可省略
var ab = function(){
alert("ni");
}
alert(ab);


(2).valueOf():和toString(),差不多,使用方式 对象.valueOf();
var arr = [1,2,3,4];
alert(arr.valueOf());

var obj = new Object("asd");//-> var obj = new Object() , obj = "asd";
alert(obj.valueOf());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: