【JavaScript】3.语法

来源:互联网 发布:马鞍山网络大学招聘 编辑:程序博客网 时间:2024/06/06 00:33
  • 注意:script标签可以放在html中任意位置。如果脚本操作的是页面中的局部区域,就放在局部区域的旁边;如果操作很多区域,就放在head标签里面。
  • JS中也一样有注释,标识符,关键字,变量,语句,函数,数组等常见语言组成元素。任何一种程序设计语言都具备,只是表现形式不同。

一、注释

  • 单行注释
  • 多行注释

二、标识符和Java相同

三、变量

  • 数据不确定,用变量存储。
  • JS是弱类型,使用关键字var,可以存任意数据。
  • var和;可以不写,但是建议写上,所以该语言不严谨,灵活。
  • 在script中创建的变量,即使定义在语句中,也是全局变量
  • 局部变量:定义在函数中的变量
var x = 3;x = "abc"x = "2.3"x = true;var y;alert("y = " + y);//y=undefined
var n = 3;//全局变量function abc(n) {    n = 4;//局部变量}abc(n);//局部变了,但是全局没变alert(n);//3

四、运算符

alert(13/10*10);//13alert(13/10);//1.3alert('13'+6);//136,注意这里单引和双引都是字符串alert('13'-6);//7,将13自动转为整数进行运算了,但是避免这种写法//可以讲'13'转位整数在运算alert(parseInt('13')-6)
  • && || 是逻辑运算符 ,& | 是位运算符,也支持三元运算符
  • 特殊运算符 typeof : 返回操作表达式的数据类型的字符串。
alert(typeof('13'));//stringalert(typeof(13));//numberalert(typeof(1.3));//numberalert(typeof(true));//boolean
  • 判断数据类型
alert(typeof('13')=='string');//true

五、语句

  • 与Java语句格式相同
  • 区别:
var x = 4;if(x = 5) { //x被赋值为5,非0,视为true,应该这样写5==x。//如果写成5=x会没有显示结果,可在网页左下角看到黄色叹号,点击查看详细信息。    alert("yes");} else {    alert("no");}//运行结果:yes
alert(true + 2);//3alert(false + 2);//2//在JavaScript中,非0非null即为true,默认为1;否则都是false,默认为0
var x = 4;    for(var x=3; x<6; x++) {        alert(x);    }    //for循环里的x和上面的x是一个x,只是再次赋值了
for(var x=3; x<6; x++) {}alert(x);//6,x是全局变量
  • 九九乘法表
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title> MyHTML</title><style type="text/css">table td{    border: dotted 1px red;}</style></head><body>  <script type="text/javascript">    document.write("<table>");    for(var x=1; x<10; x++) {        document.write("<tr>");        for(var y=1; y<=x; y++){            document.write("<td>" + x + "*" + y + '=' + (x*y) + "</td>");        }        document.write("</tr>");    }    document.write("</table>");</script></body></html>

这里写图片描述

六、函数

  • 没有返回值类型,使用关键字function。
  • 格式:
function  函数名(形式参数...){    执行语句;    return 返回值;}
  • 没有重载的概念
function show() {    alert("show run");    return 4;}var x = show();//show runalert(x);//4
  • 函数内置了参数数组(arguments),用于接收实际参数。
  • 哪怕函数没有定义形参,实际调用时也可以传入实参,传到了参数数组中。
function show(x,y) {//可以不写var    document.write("x = " + x + ",y = " + y);}show(3,5);//x = 3,y = 5show(3);//x = 3,y = undefined show(3,5,4,6);//x = 3,y = 5function show() {    document.write(arguments.length);}show(3,5,4,6);//4function show() {    for (var i=0; i<arguments.length; i++)        document.write(arguments[i] + ",");}show(3,5,4,6);//3,5,4,6,
  • js的函数在内存中其实是一个对象,函数名就是指向这个对象的引用。
function show() {    return 100;}//var x = show();//运行show方法,将运算完的结果返回并复制给x//document.write(x);//100var x = show;//将show引用存储的对象地址复制给x,x也指向了函数对象//直接打印x,x指向的对象会转换成字符串(其实就是调用了toString方法)document.write(x);//function show() { return 100; }//函数对象的字符串表现形式就是函数的定义形式document.write(x());//100,调用方法
  • 动态函数:使用js中已有的内置对象,Function
  • new Function(“参数列表”,”函数体”);
/*这个叫定义函数function getSum(x,y) {    var sum = x + y;     return sum;}*/var getSum = Function("x,y","sum = x + y; return sum;")//动态函数的参数列表和函数体都是可以通过参数指定的var sum = getSum(3,4);alert(sum);//7
  • 匿名函数:简化书写
/*function abc() {    alert("abc run");}var qq = abc;qq();//abc run*/var qq = function() {    alert("qq run");};qq();//qq run

七、数组

  • 定义方式1:var arr = [];//长度为0的数组
var arr = [1,2,3,4];//document.write(arr.length);//4 for(var i=0; i<arr.length; i++)    document.write(arr[i] + " ");//1 2 3 4
  • js数组是一个容器,长度是可变的,可以存任何类型的数据
  • 灵活度高,需要主观控制
<script type="text/javascript">        var arr = [1,2,3,4];        arr[0] = true;        arr[2] = 10;        arr[5] = "abc";        for(var i=0; i<arr.length; i++)            document.write(arr[i] + " ");//true 2 10 4 undefined abc         //可以直接输出数组        //document.write(arr);//true,2,10,4,,abc</script>
  • 定义方式2:var arr = new Array();
var arr = new Array(3);//创建了一个长度为3的数组var arr = new Array(3,4);//创建了一个长度为2的数组,元素为3,4
3 0