js_day12---js数据类型+运算符+三大流程控制
来源:互联网 发布:下载软件评测 编辑:程序博客网 时间:2024/06/07 00:02
Day12
●javascript数据类型
①基本数据类型:
- 数值(2)字符串(3)布尔型
小技巧:通过typeof关键字可以看到变量的具体数据类型是什么。
举例:
<html> <head><script language="javascript">var v1 = "abc";var v2 = 890;//typeof 可以看到数据的类型window.alert("v1是"+typeof v1);window.alert("v2是"+typeof v2);v1 = 567;//js是动态语言window.alert("v1现在是"+typeof v1);</script></head><body></body></html>
②复合数据类型
- 数组(2)对象
③特殊数据类型
- Null
举例:var a = null;
2、undefine
举例:window.alert(t); //报错,未定义
Var aa ;//没有赋值直接用的话,弹出undefined错误
●javascript基本数据类型三大类型
1、整型常量(10进制、8进制、16进制)
十六进制以0x或0X开头,例如:0x8a
八进制必须以0开头,例如0123
十进制的第一位不能是0(数字0除外),例如:123
2、实型常量
12.3、198.98、5E7(科学计数法)、4e5等
特殊数值:NaN(Not a Number)、Infinity(无穷大)、
有两个函数可以判断是不是NaN,infinity;
isNaN()—>判断是不是一个数、
isFinite()—>检查某个数是否为有穷大的数。
举例:
var a ="abc";
var b =parseInt(a);
window.alert(b);
var a ="abc";
var b =parseInt(a);
window.alert(b);
window.alert(6/0);
widow.alert(isNaN("abc")); //返回真
3、布尔类型
True false
举例:var a = true; var b = false;
4、String字符串
“javascript”
转义字符:
var c ="asdf\"asd" ; //字符串中有双引号,要用转义字符
window.alert(c);
●js基本语法—定义变量、初始化、赋值
☞定义变量
Vara ;这就是定义变量;
☞初始化变量
在定义变量的时候,就给值。
Var a = 45;这就是初始化变量;
☞给变量赋值
定义之后,再给值。
●js基本语法—数据类型转换
☞自动转换
数据类型是动态的。//前面提到过
☞强制转换
如何字符串转成数字?
Var a = parseInt(“123”); //使用系统函数强制转换
Var b = parseFloat(“12.3”);
Var b = 90; //b是number
Var b =b+””; // b是String
●js基本语法—运算符
☞算术运算符
常用的:+(加)、—(减)、x(乘)、/(除)、%(取模)
取模通常用于判断两个数是否能够整除。主要用于整数。
除此之外:还有++(自加)、--(自减)
还有=+、-=、/=、%=等。
这些和所有编程语言中的一样。
☞关系运算符
①== ②< ③< ④<= ⑤>= ⑥! =
介绍window.prompt()和Document.writeln()方法。
var val = window.prompt("请输入值","");
varval2 = window.prompt("请再输入一个值")
window.alert(typeofval);//注意这里接受的是字符串
document.writeln("您的输入是:"+(parseFloat(val)+parseFloat(val2)));
一个关系运算符的案例:
/*编写一个程序,该程序可以接受两个数(可以是整数,也可以是小数)
并判断两个数的大小*/
var num1 =window.prompt("请输入第一个数:");
var num2 =window.prompt("请输入第二个数:");
num1 =parseFloat(num1);
num2 =parseFloat(num2);
if(num1>num2){
window.alert("num1>num2");
}elseif(num1<num2){
window.alert("num1<num2");
}elseif(num1 == num2){
window.alert("num1= num2");
}
☞逻辑运算符
①&&与 ②||或 ③! 非
同java语言一样。
①If(逻辑表达式1&&逻辑表达式2){
}
如果逻辑表达式1为true,则js引擎会继续执行逻辑表达式2
如果逻辑表达式1为false,则js引擎不会再执行逻辑表达式2
②If(逻辑表达式1||逻辑表达式2||…){
}
如果任何一个逻辑表达式为true,则整个式子为true
- If(!逻辑表达式){
}
如果逻辑表达式为true,则【!逻辑表达式】为false;
如果逻辑表达式为false,则【!逻辑表达式】为true;
特别说明:在逻辑运算中,0、“”、false、null、undefined、NaN均表示为假。
Var a =0;
If(!a){
Window.alert(“Ok”);
}
这里有一个非常重要的知识:
/*在js中,||究竟返回什么*/
案例1:
var a = 4;
var b = 90;
var c = a||b;//c是4,为什么?
window.alert(c);
案例2:
var a = 0;
var b = "";
var d = false;
var c = a||b||d;//这时c=false;
window.alert(c);
☞ ||返回的不一定是一个布尔值。
||将返回第一个不为false的值(对象亦可),或是返回最后一个值(如果全部为false的话)
☞位运算和移位运算
Js中的位运算和移位运算,其规范和java一致;
看一个案例:
var a = 4>>2;
//4的二进制是00000100,右移2位,则变成了00000001。
window.alert(a);//输出1
var a = -4>>2;
//-4的原码:1000000000000100 -->反码:11111111 11111011
//-->补码:1111111111111100,右移2位,则变成了1111111111111111。
//-->反码:1111111111111110 -->10000000 00000001
window.alert(a); //输出-1
●js基本语法—三大流程控制
☞顺序控制
对编程而言,不控制其流程就是顺序执行。
☞分支控制
◆单分支
基本语法:
If(条件表达式){
//语句;
}
◆双分支
基本语法:
If(条件表达式){
}else{
}
◆多分支
基本语法:
If(条件表达式1){
}else if(条件表达式2){
}else if…(){
}
强调:一旦找到一个满足条件的入口,执行完毕后,就直接结束。
除了if分支还有switch分支:
Switch(条件表达式){
Case常量1://执行语句;break;
Case常量2://执行语句;break;
Case …
Default://什么条件都不满足,执行;
}
案例:
var a="90";
switch(a){
case"90":
window.alert("90");
break;
case890:
window.alert("890");
break;
default:
window.alert("没有匹配的值");
}
针对这个案例我们总结出:
▪js的switch语句数据类型可以是js支持的任何类型(数组和对象除外)
▪case后面的数据类型可以任意(数组和对象除外)
▪break作用是跳出整个switch
▪如果没有匹配的,则执行default中的语句。
☞循环控制
◆For循环:for(循环初值;循环条件;步长){ //语句 }
for(var i=0;i<10;i++){
document.writeln("你好!<br/>");
}
流程图:
◆While循环:
while(条件表达式){
//语句
条件变化;
}
◆do..While循环:
不管怎样,循环体肯定会执行一次。
案例练习:
编写一个程序可以接受一个数:
1计算1+2+3+…+n的值。 2计算1!+2!+…+n!的值。
<html><head><script language="javascript">var n = window.prompt("请输入一个整数");n= parseInt(n);var res=0;for(var i = 1;i<=n;i++){res+=i;}document.writeln("相加结果是"+res);var res2 =0;var temp = 1;for(var i=1;i<=n;i++){for(var j =1;j<=i;j++){temp*=j;}res2 +=temp;temp =1;}document.writeln("阶乘相加结果是"+res2);</script></head><body></body></html>
运行结果:
☞IE8开始提供了开发人员工具,供调试javascript代码使用。
案例练习:
输出菱形:
代码如下:
<html><head><script language="javascript">for(var i=0;i<10;i++){for(var j=0;j<9-i;j++){document.writeln(" ");}for(var j =0;j<2*i+1;j++){document.writeln(" *");}document.writeln("<br/>")}for(var i = 0;i<9;i++){for(var j=0;j<i+1;j++){document.writeln(" ");}for(var j =0;j<17-2*i;j++){document.writeln(" *");}document.writeln("<br/>")}</script></head><body></body></html>
- js_day12---js数据类型+运算符+三大流程控制
- js三大流程控制
- Web17.JS数据类型/运算符/优先级/流程控制语句
- Java序谈之变量,数据类型,运算符,流程控制,三目运算符
- 数据类型、运算符、流程控制、数组
- Java:数据类型、变量、运算符、控制流程
- java核心技术读书笔记<一>之数据类型,变量,运算符,字符串,控制流程,大数值,数组
- 运算符及控制流程(三)
- js第七节-运算符,流程控制
- java学习_03_标识符、数据类型、运算符、控制流程
- python基础-变量、数据类型、input、格式化、运算符、流程控制
- java三大流程控制
- java三大流程控制
- 运算符、流程控制
- (三)php运算符与流程控制
- java入门一DAY07------java基础 三大技术框架 三元运算 流程控制 方法总结
- ECMASCRIPT——Js中的数据类型、运算符、流程控制、函数作用域链、预解析、匿名函数自执行、怪异的几个地方
- PHP 三大流程控制结构
- 网络传输协议概述——第三讲:TCP/IP协议分层
- 【异常】android.app.Application cannot be cast to****
- 网络传输协议概述——第四讲:TCP/IP协议之链路层详解
- hudson自动打包时从svn更新失败
- 网络传输协议概述——第五讲:TCP/IP协议之网络层IP(网际协议)详解
- js_day12---js数据类型+运算符+三大流程控制
- 直接运行内存中的程序
- HDU 2040 - 亲和数
- HttpClient抓取需登录的接口数据
- poj 3130 How I Mathematician Wonder What You Are!(半平面交)
- 编程面试的10大算法概念汇总
- Hibernate缓存机制
- Linux下修改网络硬件的物理地址
- HDU 2041 - 超级楼梯