一.JavaScript定义

  1. Js是指基于对象和事件驱动的客户端弱类型脚本语言

    对象:万事万物皆是对象

    对象三大特性:

    (1)属性:是指描述对象的外观特征;

    (2)方法:指对象所具备的主动行为;

    (3)事件:指对象的被动的行为

    Person对象:

        属性:姓名,性别,身高,体重...

        方法:run,eat...

        事件:指对象的被动行为,或者说对象介绍的某种指令去完成的一种行为

        弱类型:指根据变量的值来确定变量的数据类型

        var num='你好';

               int num=10;

        脚本语言:指解释型语言

        解释型语言:指将代码编写一行,就会执行一行;

        编译型语言:指程序一次性编译好,统一执行,编译一次,可以在多个平台

二、JavaScript的基本语法(变量、数据类型)

1. JS嵌入页面的方式:

    (1)行间嵌入:通过事件驱动 Eg: οnclick='alert(nihao)';  嵌入在页面

<input type="button" name="" id="" value="..." onclick="alert('123')" /> 
		<input type="button" name="" id="" value=",,,"  onclick="alert('456')"/>

    (2)内嵌嵌入:在head中通过script标签 嵌入JS程序

<script type="text/javascript">
			alert('123');
			console.log('123');  // 调试在控制台中
		</script>

    (3)外部JS : 在head中通过script标签  属性src引入外部的js文件

<script src="js/new_01.js" type="text/javascript">
			/*alert('123');
			console.log('123');*/			
		</script>

2.js变量:

                 指在一段程序  不断发生变化的量。

  2.1,声明一个变量: 使用关键字var 变量名;

                Eg:  var   num;

   2.2, 变量名称的命名规则:

    (1)驼峰命名法: getElement、userName;

    (2)变量的名称是以字母    $    _  组成;

    (3)变量可以包含数字,但是不能以数字开头;

        Eg: var num09;  var num_09;  var $num;

    (4)不能使用JS中保留的关键字;  错误的写法:  var  var;

    (5)JS中区分大小写;userName  username  表示不同的变量;

    (6)变量可以使用中文命名,但是不建议。  LOW

    (7)变量的长度 不能超过255个字符。    

三.JavaScript基本语法 之 数据类型之间的转换

    1.数据类型:两大类型:基本类型 和特殊类型

    1.1,基本类型

    查看数据类型:使用typeof  查看变量的数据类型

        alert(typeof  变量);

        alert(typeof (变量));

    (1)字符串型 String

var srt='123asdf';
 alert(typeof srt);

   (2)数字型 Number

var nun=123;
 alert(typeof nun);

  (3)布尔型 Boolean

var bol=false;
alert(typeof bol);

 (4)未定义型 undefined

var num;
alert(typeof num)

1.2,特殊类型

    (1)object 对象类型 所有类型的父级

var obj=new Object();
	alert(typeof obj);

 (2)array 数组

    (3)function 函数

2.数据类型之间的转换

2.1,数字型转化为字符串型   number-->string

 (1)拼接字符串

var nuz=123;
alert(nuz+'');
nuz_00=nuz+'';
alert(typeof (nuz=''));

 (2)使用JS的封装方法转换

var nuz=123;
alert(nuz.toString());
nuz_01=nuz.toString();
alert(typeof nuz_01);

  (3)特殊方法

var nuz=123;
alert(String(nuz));
nuz_02=String(nuz);
alert( typeof nuz_02);

2.2,字符串型转换为数字型   string-->number

    (1)拼接   (字符串只能为数字)

var str='123';
			 alert(str-'');
			var str_01=str-'';
			alert(typeof str_01);

 (2)特殊方法

var str='1234';
alert(typeof Number(str));
alert(str_01);// 返回结果1234    为数字类型number

(3)parseInt()方法 ,parseFloat()方法

var stt='fasd123';
var stt_00=parseInt(stt);
alert(stt_00);
alert(typeof stt_00);
var stu='123.5acs';
var stu_00=parseFloat(stu);
alert(stu_00);
alert(typeof stu_00);

四.JavaScript 的流程控件语言

1.运算符类型

(1) 算术运算符;

算术运算符用于在程序中进行加、减、乘、除,自增,自减等运算。 

var num_01=5,num_02=6;
alert(num_01+num_02);    5+6//返回值11 
alert(num_01-num_02);	5-6//返回值-1
alert(num_01*num_02);	5*6//返回值30
alert(num_01/num_02);	5/6//返回值0.833333334
 alert(num_01%num_02); 	5%6//返回值5  求余运算
var num_01=5,num_02=6;
 var sum=num_01++ + num_01++;
alert(sum);
// sum=11  num_01=7
// num_01++  表示先赋值 后运算
var a=2,b=3; 
var sum=++a;  
alert(sum);
// a=3
// sum=3
// ++a;先运算后赋值

 (2) 比较运算符;

    首先对操作数进行比较,该操作数 可以是数字也可以是字符串,然后返回一个布尔值true或false。

js使用java中的变量_js使用java中的变量

js使用java中的变量_js使用java中的变量_02

(3) 赋值运算符;

JavaScript中的赋值运算可以分为2种:简单赋值运算和复合赋值运算。

简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中。

复合赋值运算结合了其他操作如算术运算操作)和赋值操作。

var a=12,b=10;
a=a+b;   // 简单赋值
a+=b;  	 // 复合赋值
 a-=b;
a*=b;

js使用java中的变量_js数据类型_03

js使用java中的变量_js数据转换_04

(4) 逻辑运算符;

逻辑运算符通常用于执行布尔运算,它们常常和比较运算符一起使 用来表示复杂比较运算,这些运算涉及的变量通常不止一个,而且常用于 if、while和for语句中。

js使用java中的变量_js定义_05

js使用java中的变量_js数据类型_06

(1)true的!为false,false的!为true;

 (2)a&&b,a、b全为true时,表达式为true,否则表达式为false; 

(3)a||b:a、b全为false时,表达式为false,否则表达式为true; 

 (5) 条件运算符;(三目运算符/三元运算符)

 条件运算符是JavaScript支持的一种特殊的运算符。

语法:条件 ? 表达式1 : 表达式2; 

说明: 如果“条件”为true,则表达式的值使用“表达式1”的值;

            如果 “条件”为false,则表达式的值使用“表达式2”的值。

 

js使用java中的变量_js使用java中的变量_07

2.流程结构:

2,1.顺序结构

顺序结构是JavaScript中最基本的结构,就是按照从上到 下、从左到右的顺序执行。

js使用java中的变量_js数据类型_08

js使用java中的变量_js定义_09

2,2.选择结构

选择结构是按照给定的逻辑条件来决定执行的顺序,有单向选择, 双向选择和多向选择之分,但是程序在执行过程中都只是执行其中的一条分支。

js使用java中的变量_js运算符类型_10

                             上图左边为单向选择结构,右边为多向选择结构

选择结构的方法:

    (1)if单支结构; 

    (2)if……else双支结构; 

    (3)if……else if……else... 多支结构; 

    (4)switch...case...结构;

        (5)if语句的嵌套; 

    2,1,1.if单支结构: if(条件) {语句体}

 

var num_01=10;
	if(num_01>20)
    {  // 只有在条件 为true的时候 才会执行语句体
		alert('num_01的值是大于20的');
	}
if(true){   if条件中 默认的为true
				alert('条件为true时执行');
		}

2,1,2.if..else双支结构:  if(条件) {语句体} else(条件) {语句体}

var num_01=10;
if(num_01>12){
	alert('是的,你猜对了, 就是大于12的');
	}else{
			alert('你丫的猜错了');
		}

2,1,3.if多分支结构:if(条件) {语句体}else if(条件) {语句体}else {语句体}

//  问题: 根据等级A-D  判断成绩所属的范围?
 var dengji='A';
 var mess=prompt('请输入你等级');
	 alert(mess);
if(mess=='A'){
	// 将数据写入在当前的html页面中
	document.write('<h2 id="h2">成绩属于90-100之间</h2>');
	}else if(mess=='B'){
			document.write('成绩属于80-90之间');
	}else if(mess=='C'){
			document.write('成绩属于70-80之间');
	}else{
			alert('没有这个等级,重新输入');
	}

  2,1,4.switch...case..结构: switch(表达式){ case取值1: 语句1;break;    case取值2: 语句2;break; ....}

<script type="text/javascript">
	var mess=prompt('请输入等级','A');
	switch(mess){
			case 'A':
				document.write('90-100之间');
				break; // 退出此语句
			case 'B':
				document.write('80-90之间');
				break;
			case 'C':
				document.write('70-80之间');
				break;
			default:   // 当其他所有的case语句定义的值都不满足时,执行default后面的语句块
				document.write('没有您输入的等级');
				break;
			}
< /script>

  2,1,5.if嵌套

<script type="text/javascript">
	var x=6,y=2;
	if(x>5){
			if(y<10){
					alert('x>5 并且 y是小于10的');
			}else{
					alert('x>5  但是 y不小于10');
			 }
			}else{
				alert('x不大于5');
			}
</script>

 2,3.循环结构

    循环:一个语句多次执行,直到条件为false时退出

    循环结构语句主要包括3种:

 (1)for语句;

(2)while语句;

 (3)do……while语句;

2,3.1.for(初始化;条件;增量/减量){循环体}

//问题: 输出1-100之间的数据
for(var i=1;i<=100;i++){
			//	document.write(i+'<br />');
			}
//问题: 输出1-100之间的偶数
for(var i=1;i<100;i++){
				if(i%2==0){
					// document.write(i+'<br />');
				}
			}
// 问题:  输出1-100之间数字的和
			var sum=1; // 记录和值		 
			for(var i=1;i<=100;i++){
				sum+=i;
			}
			document.write(sum);
// 问题: 1,2,3,4 可以组成多少位互不相同的三位数
			// 分析: for嵌套循环
			/*var count=0;  // 记录个数
			for(var i=1;i<=4;i++){
				for(var k=1;k<=4;k++){
					for(var h=1;h<=4;h++){
						if(i!=k &&  k!=h  && h!=i){
							count++;
							document.write(i.toString()+k+h+'<br />');
						}
					}
				}
			}
			document.write('互不相同的三位数有:'+count+'个');*/
// 打印直角三角形   使用*
			for(var i=1;i<=5;i++){  // 控制行数
				for(var k=1;k<=i;k++){
					document.write('*');
				}
				document.write('<br />');
			}
			for(var i=1;i<=5;i++){  // 控制行数
				for(var j=0;j<5-i;j++){
					document.write('○');
				}
				for(var k=1;k<=2*i-1;k++){
					document.write('*');
				}
				document.write('<br />');
			}
var i,j;
	for(i=1;i<=9;i++){
	    for(j=1;j<=i;j++){
		document.write(j+'*'+i+'='+i*j+(i*j>9?'  ':'  '));
	    }
	    document.write('<br />');
	}
	document.write('<hr />');
document.write('<table style="width: 800px;">');
    for(i=1;i<=9;i++){
	    document.write('<tr>');
	for(j=1;j<=i;j++){
	    if(j%2==0){
	        document.write('<td style="border: 1px solid green; background: green;">');
	    }else{
		  document.write('<td style="border: 1px solid green; background: red;">');
		}
		document.write(j+'*'+i+'='+i*j);
		document.write('</td>');
	}
	document.write('</tr>');
	document.write('<br />');
    }
    document.write('</table>');

2,3,2 while(条件表达式语句){执行语句;}

// 问题: 输出1-10之间的数据
	var num=0;
	while(num<9){
		num++;
	 document.write(num);
		}
// 输出1-10之间的数据,但是不包含5
			var num_03=0;
			while(num_03<9){
				num_03++;
				if(num_03==5){
					continue;// 退出当前的循环  执行下一循环
				}
			 	document.write(num_03);
			}

2,3,3 do{执行语句块;}while(条件表达式语句);

// 问题; 输出1-10之间的数据
			var num_01=0;
			// 特点: 是先输出 在判断
			do{
				num_01++;
				// document.write(num_01);
			}while(num_01<10);

2,3,4 break;continue

// 使用while 输出1-10之间的数字,但是没有5之后的数字
			var num_02=0;
			while(num_02<10){
				num_02++;
				if(num_02>5){
					break; // 退出整个循环
				}
			// 	document.write(num_02);
			}
// 输出1-10之间的数据,但是不包含5
			var num_03=0;
			while(num_03<9){
				num_03++;
				if(num_03==5){
					continue;// 退出当前的循环  执行下一循环
				}
			 	document.write(num_03);
			}

3.获取页面元素:

3.1获取页面中的方法: 通过元素的id获取元素

// var div= document.getElementById('div_01');
// alert(div);// [object HTMLDivElement]
//}

如果获取到页面的元素为null,

考虑: 元素执行的顺序发生了问题

解决方式:

(1)将所有的JS程序移植到body的最下面

(2)添加窗口的加载事件  onload

重点:  js中设置元素的样式

div.style.width=200+'px';
div.style.height=200+'px';
div.style.border='1px solid red';

重点:  通过js  之 DOM操作 添加元素的内容

 使用属性innerHtml/innerText

div_01.innerText='<h1>标题1</h1>';
div_01.innerHTML+='<h1>标题1</h1>';
 alert(div_01.innerHTML);
 alert(div_01.innerText);