黑马程序员——JavaScript学习笔记(1)

来源:互联网 发布:最新windows手机 编辑:程序博客网 时间:2024/04/29 10:43

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

Javascript 的基本介绍

1js是用于web开发的脚本语言

脚本语言是什么??

(1)   脚本语言往往不能独立使用,它和htmljspphpasp.net配合使用。不能独立运行,要嵌入到其他编程语言中才能运行。

(2)   脚本语言有自己的变量、函数、控制语句

(3)   脚本语言是一种解释性语言。(在执行的时候,直接对源码进行执行)

(4)   Java程序 java-->class-->jvm    js-->浏览器(js引擎来解释执行)

 2 javascript在客户端(浏览器)执行

 3因为js是由浏览器来解释执行的,不同类型的浏览器可能对js的支持不一样。依赖于浏览器本身,与操作环境无关。

 

案例1:

需求:打开网页后显示 helloworld

 

<html>

<head>

<script  language="javascript">

window.alert("hello,world!");

</script>

</head>

<body>

</body>

</html>

问题:

1、           Js的代码一般放在head标签间 但实际上可以放在别的位置。

2、           Js格式

<script  language="javascript">

Js代码;

</script>

如果没有使用<script>抱起来,浏览器则视为普通文本

3、           在一个html文件中可以使用多对<script>片段,按照先后顺序依次执行。

4Js中变量的定义

js中变量用var表示,不管实际类型。

Js中变量的类型怎样决定?

(1)   js是弱数据类型语言。即在定义变量的时候可以通用使用var表示,甚至可以去掉var这个关键字。

(2)   js中变量的数据类型由js引擎决定。(类型动态变化)

5js中的标识符(变量、函数、数组)

  可以由任意大小写字母、数字、下划线、美元符组成,但不能以数字开头,不能是javascript中的保留关键字。严格区分大小写。

保留字:

abstract

boolean

byte

char

class

const

debugger

double

enum

export

extends

final

float

goto

implements

import

int

interface

long

native

package

private

protected

public

short

static

super

synchronized

throws

transient

volatile

 

6js中程序代码格式

每条功能执行语句的最后用分号(;)结束。语句块用{}来表示。

7js程序的注释

       /*…..*/中可以嵌套  //注释,但不能嵌套/*……*/

 

8Js的数据类型

基本数据类型

1、           数值

整型

实型 ( 12.34 5E6或者7e8)

特殊数值:NaN(not  a  number)  Infinity (无穷大)

举例:

var  a="aaaa";

window.alert(a);

window.alert(9/0);

isNaN()//判断是否为一个数   不是一个数返回true

isFinite()//判断是否为有穷大 

2、           字符串

avc”、‘abc’都表示字符串,特殊字符用\转译

3、布尔型

通过typeof可以看到变量的具体数据类型;

例子:

<html>

<head>

<scriptlanguage="javascript">

varv1="abc";

var v2=98;

 

window.alert("v1"+typeofv1);

window.alert("v2"+typeofv2);

 v1=99;//数据类型自动变化

window.alert("v1"+typeofv1);

</script>

</head>

<body>

</body>

</html>

 

符合数据类型(引用数据类型)

1、           数组

2、           对象

特殊数据类型

(1)Null

Var a=null;

(2)nudefine

window.alert(tt);//报错未定义

var   aa;

window.alert(aa);//弹出  undefine

 

js数据类型的转换

1、           自动转换

Var  a =123;

 a = abc”;

2、           强制转换

Var  a =”12345”;

a =parseInt(a);

var  b=90;

b=b+“”;

例:

var  v=window.prompt("请输入");//返回的是字符串类型

document.writeln("你的输入"+v);

u  算数运算符

+-*/%

u  逻辑运算符

&&  || 

表达式1&&表达式2  //表达式1true继续判断表达式2,如果表达式1false则不判断表达式2

表达式1||表达式2  //表达式1true则不继续判断表达式2

在逻辑运算中 0、“”、falsenullundefinedNaN均表示false。非0的表示真。

||的返回值:返回第一个不为false那个值(对象亦可)或者返回最后一个值(如果全部都为false)。不一定是布尔值。Boolean

例:

var  a = 2;

var  b=0;

var  c=b||a;

window.alert(c);//输出2

js也有位运算和移位运算,其规范和java一致

u  三大流程控制

1、顺序控制

2、分支控制

(1)单分支

If(条件表达式){

//执行语句

}

(2)双分支

If(条件表达式){

//执行语句

}else{

//执行语句

}

(3)多分支

If(){

}else if(){

}else if(){

}else{}

 

Switch(条件表达式){

case 常量1

           语句;break

case 常量2

           语句;break

。。。。

default

           语句;break

}

表达式可以是js支持的所有数据类型(数组和对象除外)。

Case后面的数据类型可以是任意数组和对象除外),可以混合使用。

3、           循环控制

For循环

While循环

do while循环

     do{

}while();

二、js函数

u  基本语法

function 函数名(参数){//参数名前不要带var 没有返回值

 

}

例子:

var n1=window.prompt("请输入第一个数");

var n2=window.prompt("请输入第一个数");

var oprator=window.prompt("请输入运算符");

n1=parseFloat(n1);

n2=parseFloat(n2);

document.writeln("你的计算结果"+jiSuan(n1,n2,oprator));

 

function jiSuan(n1,n2,oprator){

  varres=0;

 if(oprator=="+"){

  res=n1+n2;

 }else if(oprator=="-"){

  res=n1-n2;

 }else if(oprator=="-"){

  res=n1*n2;

 }else{

  res=n1/n2;

  }

 return res;

}

把上面的函数单独提出,写到js文件中,然后在需要用的地方引入。引入方式:

<script language="javascript"src="js的路径"></script>

u  函数的调用方式

1、           普通调用

函数名(实际参数);

2、           通过指向函数的变量去调用

var   myfun=函数名;

myfun(实际参数);

3、           关于接收函数返回值的问题

var   myfun=test(参数);

如果函数没有返回值,但是有接收了,返回nudefined;如果有就返回其值。

4、           js支持递归调用

5、           js支持参数个数是可变的函数

例:

 

 

Function  abc(){

Window.alert(argument.length);

}

6、           js支持创建动态函数

 

 

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

原创粉丝点击