javascript快速入门2--变量,小学生数学与简单的交互
变量
对于变量的理解:变量是数据的代号。如同人的名字一样。
var num;//在JavaScript中使用关键字var声明一个变量
在JavaScript中,使用上面的语法,就可以声明一个变量,以便在之后给其指定值.
var num;
num=128;//这样,就将num做为值128的一个名字,有了名字,就可以在之后引用!
document.write(num);//输出128
貌似下面的代码和上面的具有一样的输出
document.write(128);//这样当然也输出了128
不过再试试下面的代码
document.write(3.14159265358979);//我们要多次输出这个值
document.write(3.14159265358979);
document.write(3.14159265358978);
document.write(3.14159265358979);
document.write(3.14159265358979);
于是可以用变量的概念来偷懒
var num;
num=3.14159265358979;
document.write(num);
document.write(num);
document.write(num);
document.write(num);
document.write(num);
虽然看上去没节约多少笔墨,但有一个概念即是:我们使用document.write多次输出的是同一个值!而前面一块则不同,它在每次输出时产生了一个新的值,显而易见,使用变量可以清楚的表达我们想要做的,而且简短的变量名引用可以使代码更清晰且不容易出错! 当然,名字不是乱取的,变量的命名有一些限制:只能包含字母,数字,和下划线,还有个特殊的$字符,并且变量名只能以字母,下划线,还有$开头;另外,还不能使用JavaScript关键字和保留字;所以说,下面的变量声明全是错误的
var 34bad;//不能以数字开头
var per人;//不能包含中文
var bad-var;//非法的-
var var;//var就是一个关键字,所以很明显不能用来做变量名
另外要注意的一点是,变量的名称是区分大小写的!
值,类型
var dog;
dog="小虎子";//字符串,它们总被包含在双引号(或单号)中
var num;
num=1;//数字,它们裸露的出现了
var strNum;
strNum="1";//但是现在strNum所引用的是一个字符串,因为它被包含在引号中了
var badNum;
badNum=3.345;//一个小数,因为它带有一个小数点
badNum=.2;//仍然是一个小数,这句代码与badNum=0.2是一样的!
badNum = 0.4.5;//当然,这句代码是错的,一个非法数字
上面那样的写法(为了演示),我已经不想再忍受了,完全可以这样声明变量
var dog,num,strNum,badNum;//可以一次声明多个变量,它们用逗号分隔,然后再赋值
dog="小虎子";
num=1;
..........................
当然还有另一种声明变量的方法,事实上这种风格才是最常见的
var dog="小虎子";
var num=1;
var str="some string",strNum="123";
......
数字(只能有整数或小数),字符串可能最常用的了,还有另一种类型:布尔值(Boolean).不像数字或字符串,有无限种可能的值,Boolean值只有两种可能:真,假
var bool=true;//用true表示真值
bool=false;//用false表示假值
JavaScript是动态类型语言,在声明变量时无需指明其类型,在运行时刻变量的值可以有不同的类型。
var s="Hello,World!!!";//无需指明为字符串类型
s=1.61803;//在运行时将变量值指定为另一个类型
JavaScript的变量类型不止字符串,数字,布尔值这三种,然而这三种确是最常用的了。其它数据类型(参考):
- 复合(引用)数据类型是:
- * 对象
- * 数组
- 特殊数据类型是:
- * Undefined
//事实上,我们接触的第一个数据类型是Undefined,它的含义是"未定义值"
var a;//声明一个变量,但没有对其赋值
alert(a);//但它仍然有值的,它的值为undefined
alert(b);//但注意,输出一个未定义的变量将出现错误,而不是输出undefined
字符串
字符串相连
var s1="Hello,";
s1=s1+"World!";
alert(s1);
s1+="!!!!";
alert(s1);
数学运算与比较
首先是小学生都会的加减乘除:+,-,*,/
//加法 +
//减法 -
//乘法 *
//除法 /
//自增 ++
//自减 --
var a = 12;
var b = 30;
var c = a+b;
alert(c);//输出42
c=b-a;
alert(c);//输出18
c=c*2;
alert(c);//输出36
c=c/2;
alert(c);//输出18
c = 12;
c++;//这与c=c+1;效果是一样的
alert(c);//输出13
c--;//这与c=c-1;效果是一样的
alert(c);//输出11
//自增与自减运算符出现的地方也有讲究
c=20;
alert(c++);//输出20,因为++写在变量后面,这表示变量c完成运算之后,再将其值增1
alert(c);//现在将输出21,自减运算符也与些相似
//如果只是类似这样的计算
c = c+12;
//可以这样写
c+= 12;//这与写c= c+12;效果是一样的
//类似其它的运算也有简便的方法
c-=3;//c=c-3
c*=4;//c=c*3;
c/=2;//c=c/2;
要注意的是,在JavaScritp中,连接字符串时也使用“+”号。当字符串与数字相遇时?——JavaScript是弱类型语言
var num=23+45;
alert("23+45等于"+num);//表达式从左往右计算,字符串之后的数字都会当成字符串然连接
alert("23+45="+(23+45));//使用括号分隔
比较操作符:<,>,<=,>=,==,!=,!;比较操作符返回布尔值
//小于 <
//大于 >
//小于或等于 <=
//大于或等于 >=
//相等 ==
//不相等 !=
alert(2<4);//返回true
alert(2>4);//返回false
alert(2<=4);//返回true
alert(2>=2);//返回true
alert(2==2);//返回true
alert(2!=2);//返回true
表达式的组合
alert( (2<4)==(5>3)==(3<=3)==(2>=2)==(2!=2)==(2==2)==true );
逻辑运算符
逻辑运算符用于对布尔值进行比较
// &&逻辑与,当两边的值都为true时返回true,否则返回false
// || 逻辑或,当两边值都为false时返回false,否则返回true
// ! 逻辑非
alert(true && false);//输出false
alert(true && true);//输出true
alert(true || false);//输出true
alert(false || false);//输出false
alert(!true);//输出false
类型转换入门
由于JavaScript是弱类型语言,所以我们完全可以将字符串和数字(两个不同类型的变量)进行相加,这个我们在前面已经演示过了.当然,不仅仅可以将字符串和数字相加,还可以将字符串与数字相乘而不会出现脚本错误!
var str ="some string here!";
var num = 123;
alert(str*num);//将输出NaN,因为乘法运算符只能针对数字,所以进行运算时计算机会将字段串转换成数字
//而这里的字符串转换成数字将会是NaN
//NaN是一个特殊的值,含义是"Not A Number"-不是一个数字,当将其它值转换成数字失败时会得到这个值
str ="2";
alert(str*num);//将输出246,因为str可以解析成数字2
其它类型转换
var bool = true;
alert(bool*1);//输出1 ,布尔值true转换成数字为1,事实上将其它值转换在数字最简单的方法就是将其乘以1
bool = false;
alert(bool*1);//输出0
alert(bool+"");//输出"flase",将其它类型转换成字符串的最简单的方法就是将其写一个空字符串相连
alert(123+"");//数字总能转换成字符串
var str = "some string";
alert(!!str);//true,因为非运算符是针对布尔值进行运算的,所以将其它类型转换成布尔值只须将其连续非两次
str ="";
alert(!!str);//输出false,只有空字符串转换成布尔值时会是false,非空字符串转换成布尔值都会返回true
var num =0;
alert(!!num);//false
num=-123.345;
alert(!!num);//true,除0以外的任何数字转换成布尔值都会是true
//还有一个非常重要的是,空字符串转换成数字将会是0
alert(""*1);//输出0
获取变量类型 typeof 运算符
var bool = true;
alert(typeof bool);//输出boolean
var num =123;
alert(typeof num);//输出number
var str = "some string here";
alert(typeof str);//输出string
var strNum = "123";
alert(typeof strNum);//输出string
strNum *= 1;
alert(typeof strNum);//输出number
根据用户的输入进行计算
使用window.prompt可以弹出包含输入框的窗口,用户输入的内容将是此函数的返回值
var msg = window.prompt("请输入一个数字","默认值");//prompt方法包含一个必须参数和一个可选参数。
//第一个参数是必须的,将在窗口中显示的文字,第二个参数是可选的,为文本框的预设值
alert(msg);//将输出我们输入进去的东西
请用户输入年龄,我们计算出他活了多少秒(貌似无聊的很啊)
var age=window.prompt("请输入您的年龄!","18");
var liveSeconds=age*365*24*3600;
alert("您已经度过了"+liveSeconds+"秒!");
javascript快速入门2--变量,小学生数学与简单的交互的更多相关文章
- JavaScript快速入门(四)——JavaScript函数
函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...
- es6 快速入门 系列 —— 变量声明:let和const
其他章节请看: es6 快速入门 系列 变量声明:let和const 试图解决的问题 经典的 var 声明让人迷惑 function demo1(v){ if(v){ var color='red' ...
- javascript快速入门6--Script标签与访问HTML页面
Script标签 script标签用于在HTML页面中嵌入一些可执的脚本 <script> //some script goes here </script> script标签 ...
- JavaScript快速入门(二)——JavaScript变量
变量声明 JavaScript的变量声明分为显式声明跟隐式声明. 显式声明 即带var关键字声明,例如 var example = example; 要注意JavaScript里面声明的关键字只有fu ...
- Web开发初探之JavaScript 快速入门
本文改编和学习自 A JavaScript Primer For Meteor 和 MDN Web教程 前文 Web开发初探 概述 本文以介绍 JavaScript 为主,初学者掌握本文的内容后,将能 ...
- javascript快速入门10--运算符,语句
一元运算符 一元运算符只有一个参数,即要操作的对象或值.它们是 ECMAScript 中最简单的运算符. delete 运算符删除对以前定义的对象属性或方法的引用.例如: var obj = new ...
- javascript快速入门8--值,类型与类型转换
原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量 ...
- Javascript快速入门(上篇)
Javascript的熟练之路,小弟来了. JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript ...
- javascript快速入门21--DOM总结
跨浏览器开发 市场上的浏览器种类多的不计其数,它们的解释引擎各不相同,期待所有浏览器都一致的支持JavaScript,CSS,DOM,那要等到不知什么时候,然而开发者不能干等着那天.历史上已经有不少方 ...
随机推荐
- linux基础编程 套接字socket 完整的服务器端多线程socket程序【转】
转自:http://blog.csdn.net/ghostyu/article/details/7737203 此段程序来自我的一个项目中,稍微做了些修改,运行稳定,客户端程序比较简单所以未编写,可以 ...
- docker从零开始网络(二)桥接网络
使用桥接网络 在网络方面,桥接网络是链路层设备,它在网络段之间转发流量.桥接网络可以是硬件设备或在主机内核中运行的软件设备. 就Docker而言,桥接网络使用软件桥接器,该软件桥接器允许连接到同一桥接 ...
- python的一致性(1)sorted和len
每个语言,都有自己的特性,而一致性,是python语言特性重要的一个环节. 比如排序,我们不是aaa.sort(),而是 sorted(aaa),比如len,不是aaa.length(),而是len( ...
- Windows+Ubuntu双系统如何设置Windows为第一启动项
在安装双系统的时候,如果先安装的是Windows然后再安装Ubuntu系统,开机时是以Ubuntu的grub来引导Windows的,而且默认进入Ubuntu系统,下面我们介绍如何更改这个默认项,然后让 ...
- Laravel项目使用腾讯云对象存储上传图片(cos-php-sdk-v5版本)
为了加快网站访问速度.降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在Laravel项目中的使用 1.申请腾讯云对象存储.创建Bucket.获取APPID等参 ...
- AC日记——逃离僵尸岛 洛谷 P3393
逃离僵尸岛 思路: spfa: 代码: #include <cstdio> #include <cstring> #include <iostream> #incl ...
- AC日记——摆花
思路: 矩阵加速dp: 代码: #include <cstdio> #include <cstring> #include <iostream> #include ...
- mkdir 创建目录
短选项 长选项 含义 -m <目录属性> --mode <目录属性> 建立目录时同时设置目录的权限. -p --parents 此选项后,可以是一个路径名称.若路径中的某些目录 ...
- Spring:面向切片编程
在之前我们记录Spring的随笔当中,都是记录的Spring如何对对象进行注入,如何对对象的属性值进行注入,即我们讲解的很大部分都是Spring的其中一个核心概念——依赖注入(或者说是控制翻转,IOC ...
- 使用threadpool并发测试,报错HTTPConnectionPool Max retires exceeded
解决方法:和以下答案一致 https://blog.csdn.net/qq_21405949/article/details/79363084 场景: 在做爬虫项目或者是在发送网络请求的时候,一般都会 ...