标签:相同 保留 分组 mouse color var 修改 报错 多层嵌套
{JS的三种方式}
1 HTML中内嵌JS(不提倡使用)
<button onclick="javascript:alert()">点我呀!!!</button>
<button ondblclick="javascript:alert()">点我呀!!!</button>
<button onmouseover="javascript:alert()">点我呀!!!</button>
2 html页面中使用JS
<script type="text/javascript">
//JS代码
</script>
3 引用外部JS文件
<script language="JavaScript"src=""></script>
注意事项:
① 页面中的JS代码和引用的JS代码 可以嵌入到HTML中的任何位置,但是位置不同,会影响JS代码的执行顺序
②页面中的js代码:使用type="text/javascript"
引用外部的js文件 使用language="JavaScript"src=""
例如<script>在body前面会在加载前出现
③ 引用外部JS文件的<script></script>必须成对出现且标签内部不能有任何代码
<script type="text/javascript">
// js中的注释
// 单行注释 ctrl+/
/*
段落注释 ctrl+shift+/
**/
// alert("我弹了一个窗")
// document.write("<h1></h1>")
/*JS中的变量
* 1 js中变量声明的写法
* var width=10; 使用var声明的变量,只在当前函数作用域有效
* width=11; 不使用var 直接赋值生成的变量 默认为全局变量整个JS文件有效
* var a,b,c=1; 同一声明语句同时声明多个变量,变量之间用英文逗号分开,但 赋值需要单独赋,例如上式中的只有c赋为1
* 2 变量的命名规范:
* ① 变量名只能有字母数字下划线$ 组成
* ② 开头不能使数字
* ③ 变量区分大小写 大写字母与小写字母为不同变量
* 3 变量名命名要符合驼峰法则
* 变量开头要小写 之后首字母大写 (或单词之间有下划线分隔)
* JiangHaoIsShuaiGe
* 4 类型JS中的变量的数据类型
* undefined:未定义 用var声明的变量 没有进行初始化数值。 var a;
* Null 代表特殊的变量类型。 表示为空的引用 var a=null;
* Boolean 真假 可选true和false
* Number 数值类型 可以是小数,也可以是整数
* STRING 字符串类型 用""或‘‘包裹的内容为字符串
* Object (复杂数据类型) 后续讲解, 函数,数组等。
* 5 常用的数值函数
* ① isNaN 用于判断一个变量或常量 是否为非数值
* 使用isNAN判断时,会尝试使用number()函数进行转换 如果能转换为数字 则不是非数值 结果为false
* "111" 纯数字字符串 的、false " " 空字符串 false "la" 包含其他字符 true
* true/false 布尔类型 false
* ② Number() 将其他类型转化为数值类型
* [字符串类型]
* 1 字符串为纯数值字符串,会转为对应的数字 "1111"》111
* 2 字符串为空字符串 会转为"0">0
* 3 字符串包含其他非数字字符时,不能转换,"111a">NaN
* [NULL/undefined转数值]
* null>0 unfedined>0
* [Boolean类型转数值]
* true>1 false>0
* Object类型转数值]
* 先通用ValueOf 方法确定函数是否有返回值 在根据上述情况判断
* ③parseInt 将字符串转化为数值类型
* >>>> 空字符串 不能转 结果为NAN
* >>>> 纯数值字符串 能转 "123">123 "123.65">123(小数转化时,直接抹掉小数点)
*>>>> 包含其他字符的字符串。会就取第一个非数值字符前的数值部分
* "1234a123">1234 "a1234">NaN
* >>>> parseInt值能转string类型,boolem/null/undefined 均为NaN
* ④ parseFloa:将字符串转换为数值
* 使用方式同parseInt,当转化小数字符串时 保留小数点,转化整数字符串时 保留整数
* "123.5" >123.5 "123">123
* ⑤ typeof 用来检测变量数据类型
* 未定义>undefined 字符串>string true/false> boolean
* 数值>number 对象/null>object 函数>function
* */
/*声明变量注意事项
* ① JS中的所有变量类型声明,均使用var关键字变量的具体数据类型取决于给变量赋值的执行
* ② 同一变量:可以再多次不同赋值时,修改变量的数据类型
* var width=10; width为整型变量
* width="haha"; width被改为字符串类型
* ③变量可以使用var声明 也可以省略var [区别] 不使用var为全局变量
* ④ 同一变量名可以多次用var声明 但并没有任何含义 也不会报错,第二次之后的声明 只会被理解为赋值
* */
var a; // 声明变量
a=10; // 给变量赋值
JS中输入和输出语句
*1 文档中的打印输出 document 。write{};
* 输出语句 将write的()中的内容打印在浏览器屏幕上
* 使用时注意:改变量/常量以外的内容 打印时必须放在""中,变量/常量必须放在""外
* 打印内容同时有多部分内容时,中间用+链接
* 例如 document.write("左手中的纸牌"+left+"<br/>");
* 2 弹窗输出alter{} 警报
* 弹窗警告 ()中的内容 同上
* 3 弹窗输出 promptjkkk
* s\两部分参数① 输入框上面的提示信息
② 输入框里面的默认信息
* 两部分中间用逗号隔开,只写一部分,默认为提示信息
* 可以定义变量接受输出内容 例如var name = prompt("请输入您的名字","姜浩" );点击确定按钮 输入成功 点击取消按钮 name=null;
*默认接收输入的内容为字符串
* var center= 声明一个中间变量
center=left 左手的值给中间
right = center 把中间的值给右边 */
var name = prompt("请输入您的名字:","姜浩" );
document.write("您的名字:"+name);
var one =prompt("输入第一个数字:","2");
var two = prompt("输入第二个数字:","2") ;
var sum = parseFloat(one) + parseFloat(two)
document.write(sum
1 算术运算
+ 加、- 减、* 乘、 / 除、 % 取余、++ 自增、-- 自减
+:有两种作用,链接字符串/加法运算;当加号两边为数字使进行加法运算,当+号郎边有任意一边为字符串时,进行字符串链接,连接后的结果为字符串
++:自动运算符,将变量在原有的基础上加1
--:自动运算符,将变量在原有的基础上减1
n++与++n的区别
n++: 先使用n的值来计算,然后再把n+1
++n :先把n的值加1,然后再用n+1以后的值去计算
相同点:不论n++还是++n在执行完代码后,均会把n+1
var a=3
var b c
b = a++ +2 a=3 b=5 a=4
c = ++a +2 a=4 a=5 c=7
2 赋值运算
= 赋值 += -= *= /= %=
+=: a+=5;相当于 a = a + 5 但是,前者的执行效率比后者快。
-=:
3关系运算
==、 等于 === 严格等于 != 不等于、>、<、>=、<
===:严格等于;类型不同,直接返回false,类型相同,在进行下一步判断,
==:等于;类型相同,同===;类型不同,尝试将等式两边转换为数字,在判断。
特例 null == Undefined √ null === Undefined ×
4 条件运算符(多目运算)
a>b?true:false
有两个关键符号:?和:
当问号前面的部分运算结果为true时 执行:前面的代码
当问号前面的部分运算结果为false时 执行:后面的代码
多目运算符可以多层嵌套
例如 var jieguo = num>5?"输入太大":( num==5?"蒙对了!":"输入太小") ;
5逻辑运算符
&& 与、|| 或、! 非
var num =5;
var jieguo = num>5?"输入太大":( num==5?"蒙对了!":"输入太小");
document.write(jieguo);
[运算符的优先级]
1 ++ -- !
2 * / %
3 + -
4 > < >= <=
5 == !=
6 &&
7 ||
8 各种赋值= += *= /= %=
[if-else结构]
1 结构写法
if(){
条件为true时执行
}else{
条件为false时执行
}
2 if()中的表达式,运算之后的结果应该为
① Boolean true 真 false 假
② string 非空字符串为真,空字符串为假。
③ Number 0为假 一切非零均为真
④null/nan/undefined 全为假。
⑤ Objict :全为真。
3 else{}结构,可以根据情况省略 。
[多重if 阶梯if]
1 结构写法
if(条件一){
条件一成立
}else if(条件二){
条件一不成立&&条件二成立
else-if 部分可以有多个
}else{
条件一不成立&&条件二不成立
}
2 多成if条件中,各种判断条件是互斥的,只能选择其中一条路。
3 if else的{}可以省略 但是一概不提倡
如果省略{} 则 if/else结构包含的代码 仅为其中最近的一行(分号结束)
* 如果省略{} 则else结构永远属于其前方最近的一个if
* */
var sum =5;
if(sum<10){
document.write("if条件成立")
}else{
document.write("if条件不成立 ")
}
[嵌套if结构]
1 结构写法
if(条件一){
条件一成立
if(条件二){
条件一成立&&条件二成立
}else{
条件一成立&&条件二不成立}
}else {
条件一不成立
if(){
* 111
* }else{
* 1111
* }
* }
* 2 if结构可多层嵌套 但原则上不可超过3层。
/* [switch结构]
* 1 结构写法
* switch(表达式){
* case 常量表达式1:
* 语句1:
* break;
* case 常量表达式1:
* 语句1:
* break;
default:
语句N
break; } 2 注意事项:
① switch()中的表达式,以及每个case后面的表达式,可以为任何JS支持的数据类型。对象和数组不行
② case后面的所有常量表达式,必须各不相同,否则只会执行第一个。
③ case后的常量可以是任何数据类型,同一switch结构的不同case,可以使多种不同 的数据类型
④ switch在进行判断的时候,采用的是全等判断 ===
⑤ break 的作用 执行完case的代码后,弹出当前的switch结构
缺少break的结果。
聪明和正确的case项开始 依次执行所有的case和default
⑥ switch结构在判断时,只会判断一次正确答案,当遇到正确的case项后将不会判断、后续项目 依次往下执行
⑦switch的执行速率要快于多重if结构在多路分支时,可优先选择使用switch结构
var num4=5
switch(num4=5){
case 9:
document.write("这是10的case块")
break;
case 10:
document.write("这是10的case块")
break;
default :
document.write()
break;
/*[循环结构的步骤]
* ①声明循环变量
* ②判断循环条件
* ③ 执行循环体(while{}中所有的代码)操作
* ④ 更新循环变量
*
* 然后执行 ② ③ ④
*
* [JS中循环条件支持的数据类型]
* ① Boolean true 真 false 假
② string 非空字符串为真,空字符串为假。
③ Number 0为假 一切非零均为真
④null/nan/undefined 全为假。
⑤ Objict :全为真。
// var n = 1; /* ①声明循环变量*/
// while (n<=10){ /* ② 判断循环条件*/
// document.write("nihao"); /*③ 执行循环体(while{}中所有的代码)操作*/
// n++ /*④ 更新循环变量*/
// n+=2
// n=12
// }
//
/*while循环特点:先判断,后执行。
* do-while循环特点:先执行 后判断。即使初始条件不成立,do-while循环也至少先执行一次
* var m=1
* do {
*
* }while();
*
* */
//do {
// var b = parseInt(prompt("请输入一个数"));
// if(b<7){
// alert("小了");
// }else if(b>7){
// alert("大了");
// }else if(b==7){
// alert("对了");
// }else{
// alert("输入有误")
// }
//} while(b!=7)
// var n = parseInt(prompt("请输入一个整数"))
// while(n<=100){
// document.write("你赢了")
// n++
// }
// var a = parseInt(prompt("您输入的本金"))
// var b = 0;
// var num = parseFloat(prompt("数字"));
// var sum =a;
// while(b<num){
// sum+=sum*0.003;
// b++
// }
//
// document.write("年份"+num+"年<br />")
// document.write("您的本金"+a+"元<br />")
// document.write("您的总金额为"+sum+"元<br />");
// document.write("前"+a);
// var num =parseInt(prompt("数字"))
// var a = 1
// var sum = 0;
// while(a<=num){
// sum +=a
// if(a!=n)document.write(a+"+")
// else document.write(a+"=");
// a++;
//
// }
//var a =1
//
// var sum=0 , count=0;
// while(a<=1000){
// if(a%7!=0){
// document.write(a+" <br />");
// sum+=a;
// count++;
// }
// a++
// }
//document.write("个数"+count+"<br />")
//document.write("总和为:"+sum)
// var num = prompt("请输入一个三位正整数:");
//
// var bai = parseInt(num/100);
// var shi = parseInt(num%100/10);
// var ge = parseInt(num%10);
//
// var sum = bai*bai*bai+shi*shi*shi+ge*ge*ge ;
//
// document .write(sum==num?"是水仙花数":"不是水仙花数")
//
// var n =100;
// while(n<=999){
// var bai = parseInt(n/100);
// var shi = parseInt(n%100/10);
// var ge = parseInt(n%10);
// if(n == bai*bai*bai+shi*shi*shi+ge*ge*ge){
// document.write(n+"");
// }
// n++;
// }
// 斐波
// var a=1;
// var b=1;
// var c;
//
// var n =1;
// while(n<=20){
// c=a+b /* c=2*/
//// document.write(c+"<br />");
// a=b /*a=1*/
// document.write(a+"/"+c+"<br />")
// b=c /*b=2*/
// n++
// }
// var a = parseInt(prompt("输入的个数:"));
// var b =1;
// var sum=0;
// while(b<=a){
// var c = parseInt(prompt("请输入一个数"+b+"个数"));
// sum+=c;
// b++;
// }
// document.write("总和:"+sum)
//
/*for循环
* 1 for 循环有三个表达式 分别为: ① 定义循环变量 ②判断循环条件③更新循环变量
* 三个表达式之间用;隔开
* 三个表达式可以省略,两个;缺一不可
* 2 for循环特点:先判断后执行
* 3 for循环的三个表达式均可由多个部分组成,之间用逗号隔开。但是第二部分判断条件用&&链接,最终结果需要为真/假。
* */
// var sum = 0 ;
// for(var a=1,b=100;a<b;a++,b--){
// if(a<50) document.write("("+a+"+"+b+")+");
// else document.write("("+a+"+"+b+")=");
// sum +=(a+b);
// }
// document.write(sum);
var sum = 0;
for(var a=1,b=100;a<b;a++,b--){
if(a<50) document.write("("+a+"+"+b+")+");
else document.write("("+a+"+"+b+")=");
sum +=(a+b);
}
document.write(sum);
标签:相同 保留 分组 mouse color var 修改 报错 多层嵌套
原文地址:http://www.cnblogs.com/LJYqq/p/6658182.html