变量

对于变量的理解:变量是数据的代号。如同人的名字一样。

    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--变量,小学生数学与简单的交互的更多相关文章

  1. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  2. es6 快速入门 系列 —— 变量声明:let和const

    其他章节请看: es6 快速入门 系列 变量声明:let和const 试图解决的问题 经典的 var 声明让人迷惑 function demo1(v){ if(v){ var color='red' ...

  3. javascript快速入门6--Script标签与访问HTML页面

    Script标签 script标签用于在HTML页面中嵌入一些可执的脚本 <script> //some script goes here </script> script标签 ...

  4. JavaScript快速入门(二)——JavaScript变量

    变量声明 JavaScript的变量声明分为显式声明跟隐式声明. 显式声明 即带var关键字声明,例如 var example = example; 要注意JavaScript里面声明的关键字只有fu ...

  5. Web开发初探之JavaScript 快速入门

    本文改编和学习自 A JavaScript Primer For Meteor 和 MDN Web教程 前文 Web开发初探 概述 本文以介绍 JavaScript 为主,初学者掌握本文的内容后,将能 ...

  6. javascript快速入门10--运算符,语句

    一元运算符 一元运算符只有一个参数,即要操作的对象或值.它们是 ECMAScript 中最简单的运算符. delete 运算符删除对以前定义的对象属性或方法的引用.例如: var obj = new ...

  7. javascript快速入门8--值,类型与类型转换

    原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量 ...

  8. Javascript快速入门(上篇)

    Javascript的熟练之路,小弟来了. JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript ...

  9. javascript快速入门21--DOM总结

    跨浏览器开发 市场上的浏览器种类多的不计其数,它们的解释引擎各不相同,期待所有浏览器都一致的支持JavaScript,CSS,DOM,那要等到不知什么时候,然而开发者不能干等着那天.历史上已经有不少方 ...

随机推荐

  1. Swift : missing argument label 'xxx' in call

    http://stackoverflow.com/questions/24050844/swift-missing-argument-label-xxx-in-call up vote37down v ...

  2. HDU1385 (Floyd记录路径)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. gdb 调试 ncurses 全过程:

    转载地址: http://blog.jobbole.com/107759/ gdb 调试 ncurses 全过程: 发现网上的“gdb 示例”只有命令而没有对应的输出,我有点不满意.gdb 是 GNU ...

  4. 【转】使用者角度看bionic pthread_mutex和linux futex实现

    使用者角度看bionic pthread_mutex和linux futex实现 本文所大篇幅引用的参考文章主要描述针对glibc和pthread实现:而本文的考察代码主要是android的bioni ...

  5. kuangbin 带你飞 数学基础

    模版整理: 晒素数 void init() { cas = ; ; i < MAXD ; i++) is_prime[i] = true; is_prime[] = is_prime[] = f ...

  6. 解决Composer 使用时要求输入授权用户名密码问题

    使用Composer下载第三方包时出现: Authentication required (packagist.phpcomposer.com): Username: 解决方法: 1.修改源 comp ...

  7. 关于存储权限WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE

    WRITE_EXTERNAL_STORAGE:写入权限 READ_EXTERNAL_STORAGE:读取权限 最近申请存储权限时,在纠结是否需要同时申明WRITE_EXTERNAL_STORAGE 和 ...

  8. linux下redis的最佳实践(Master-Slave)

    本文演示了redis在同一台linux上的安装及运行多个实例,并演示了主从复制,以及如何进行主从的切换. 1. 下载 $ wget http://download.redis.io/releases/ ...

  9. (4)三剑客之awk

    (1)awk工作原理#awk -F: '{print $1,$3}' /etc/passwd 1)awk使用一行作为输入,并将这一行赋给内部变量$0,每一行也可称为一个记录,已换行符结束 2)然后行被 ...

  10. 【转】Python模块subprocess

    subprocess 早期的Python版本中,我们主要是通过os.system().os.popen().read()等函数.commands模块来执行命令行指令的,从Python 2.4开始官方文 ...