Javascript学习总结-基本语法-(二)

2.4. 数据类型

2.4.1.  typeof操作符

ECMASCRIPT 中有4种基本数据类型:

Undefined, Boolean,Number和String

Typeof

关键字typeof可以获取一个变量的类型。

<script type="text/javascript" >

         var a = 100;

         var b = 3.14;

         var c = true;

         var d = ‘a‘;

         var e = "hello";

         var f;

         document.write(a + "<br/>");

         document.write(b + "<br/>");

         document.write(c + "<br/>");

        document.write(d + "<br/>");

         document.write(e + "<br/>");

         document.write(f + "<br/>");

         document.write("<hr/>");

         document.write( typeof a + "<br/>");

         document.write( typeof b + "<br/>");

         document.write( typeof c + "<br/>");

         document.write( typeof d + "<br/>");

         document.write( typeof e + "<br/>");

        document.write( typeof f + "<br/>");

   </script>

  

类型的总结:

所有的数值都是number类型

字符和字符串都是string类型

布尔是boolean类型

如果一个变量没有初始化值的时候,其类型为undefined类型。表示没有定义。

JavaScript中数值的表示形式:

<script type="text/javascript" >

        var a = 12;

        var b = 012; //八进制 10

        var c = 0x12; //十六进制 18

        document.write(a + "<br/>");

        document.write(b + "<br/>");

        document.write(c + "<br/>");

      </script>  

使用细节:

1、八进制中如果数据超过0~7,默认解析为十进制数据。

<script type="text/javascript" >

        var a=09; //无效的八进制

         document.write(a+"<br/>");

</script>

浮点数:

要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用 1.0 而不是 1)。这被看作浮点数字面量。例如:

<script type="text/javascript" >

        var a = 3.14;//浮点数

        var b = 1.//合法,小数点后面没有数字,解析为1

        var c = 10.0//整数,解析为10。

        document.write(a + "<br/>");

        document.write(b + "<br/>");

        document.write(c + "<br/>");

      </script>  

由于保存浮点数需要的内存空间是保存正数值的两倍,因此ECMAScrip会将浮点数值转换为整数值。如果小数点后没有跟任何数字和浮点数本身就是一个整数就会被转换为整数。

转换成数字

    ECMAScript 提供了两种把非数字的原始值转换成数字的方法,即 parseInt() 和 parseFloat()。只有对 String 类型调用这些方法,它们才能正确运行;对其他类型返回的都是 NaN。

在判断字符串是否是数字值前,parseInt() 和 parseFloat() 都会仔细分析该字符串。

parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。

例如,如果要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。

<script type="text/javascript" >

         var num = parseInt("1234abc");

        document.write(num); //1234

      </script>

字符串中包含的数字字面量会被正确转换为数字,比如 "0xA" 会被正确转换为数字 10。不过,字符串 "22.5" 将被转换成 22,因为对于整数来说,小数点是无效字符。

<script type="text/javascript" >

         var num1 = parseInt("12345red");

         //返回 12345

         var num2 = parseInt("0xA");

        //返回 10

         var num3 = parseInt("56.9");

         //返回 56

         var num4 = parseInt("red");

        //返回 NaN

         document.write(num1 + "<br/>");

         document.write(num2 + "<br/>");

         document.write(num3 + "<br/>");

        document.write(num4 + "<br/>");

      </script>

  

<script type="text/javascript" >

        alert(  parseFloat("123")  ); // 可以

        alert(  parseFloat("123.53")  ); // 可以

        alert(  parseFloat("012")  ); // 12

        alert(  parseFloat("000012")  );  // 12

        alert(  parseFloat("0x20")  ); // 结果为0

        alert(  parseFloat("-59")  ); // 负数

        alert(  parseFloat("abc123")  ); // NaN (Not a Number),表示不是一个数字。

        alert(  parseFloat("123ab2c")  ); // 结果是123,即会解析前面正确的数字,直到遇到不正确的数字。

      </script>

  

判断是否是一个有效的数值.

isNaN

isNaN( 表达式 ),返回的结果是否为NaN(非数值)

<script type="text/javascript" >

         document.write(isNaN("abc")+"<br/>"); //true

         document.write(isNaN("123")+"<br/>"); //false

      </script>

2.5.     运算符(operator)

2.5.1.  算术

加法运算符

加法运算符由加号(+)表示:

ECMAScript 中的加法也有一些特殊行为:

某个运算数是 NaN,那么结果为 NaN。

字符串拼接

如果两个运算数都是字符串,把第二个字符串连接到第一个上。

如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。

例如:

var result = 5 + 5;  //两个数字

alert(result);       //输出 "10"

var result2 = 5 + "5";   //一个数字和一个字符串

alert(result);       //输出 "55"

注意:

var a = 5;

var b = true;

alert(a + b);

//6

注意:变量是布尔类型的时候,true=1, false=0;

var a = 5;

var b = false;

alert(a + b);//5

乘法运算符

乘法运算符由星号(*)表示,用于两数相乘。

ECMAScript 中的乘法语法与 Java语言中的相同:

注释:如果运算数是数字,那么执行常规的乘法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。

除法运算符

除法运算符由斜杠(/)表示,用第二个运算数除第一个运算数:

var iResult = 88 /11;

注意:

var a = 10;

var b = 3;

alert(a / b); //3.3333333333333335

2.5.2.  比较

比较运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算

var bResult1 = 2 > 1 //true

var bResult2 = 2 < 1 //false

比较数字和字符串

var bResult = "25" < "3";

alert(bResult);   //输出 "true"

上面这段代码比较的是字符串 "25" 和 "3"。两个字符串在比较的时候 比较的是两个字符串 对应的字符顺序.

注意: 如果字符串与比较,会把字符串转成数字再进行比较。

如果把某个运算数改为数字,那么结果就不一样了:

var bResult = "25" < 3;

alert(bResult);   //输出 "false"

这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。

无论何时比较一个数字和一个字符串,ECMAScript 都会把字符串转换成数字,然后按照数字顺序比较它们。

2.5.3.  逻辑运算符

&& 与

||    或

!    非

逻辑 AND 运算符

在 ECMAScript 中,逻辑 AND 运算符用双和号(&&)表示:

var bTrue = true;
var bFalse = false;
var bResult = bTrue && bFalse;

与 Java 中的逻辑 AND 运算相似,ECMAScript 中的逻辑 AND 运算也是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数。对于逻辑 AND 运算来说,如果第一个运算数是 false,那么无论第二个运算数的值是什么,结果都不可能等于 true。

考虑下面的例子:

var bTrue = true;

var bResult = (bTrue && bUnknown);   //发生错误

alert(bResult);                //这一行不会执行

这段代码在进行逻辑 AND 运算时将引发错误,因为变量 bUnknown 是未定义的。变量 bTrue 的值为 true,因为逻辑 AND 运算将继续计算变量 bUnknown。这样做就会引发错误,因为 bUnknown 的值是 undefined,不能用于逻辑 AND 运算。

  

逻辑 OR 运算符

ECMAScript 中的逻辑 OR 运算符与 Java 中的相同,都由双竖线(||)表示

var bTrue = true;

var bFalse = false;

var bResult = bTrue || bFalse;

与逻辑 AND 运算符一样,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。

逻辑 运算符NOT。

在 ECMAScript 中,逻辑 NOT 运算符与Java 中的逻辑 NOT 运算符相同,都由感叹号(!)表示。

通常,该运算符用于控制循环:

var bFound = false;

var i = 0;

while (!bFound) {

  if (aValue[i] == vSearchValues) {

    bFound = true;

  } else {

    i++;

  }

}  

2.5.4.  赋值运算符

简单的赋值运算符由等号(=)实现,只是把等号右边的值赋予等号左边的变量。

例如:

var iNum = 10;

  

复合赋值运算是由乘性运算符、加性运算符或位移运算符加等号(=)实现的。这些赋值运算符是下列这些常见情况的缩写形式:

var iNum = 10;

iNum = iNum + 10;

  

可以用一个复合赋值运算符改写第二行代码:

var iNum = 10;

iNum += 10;

  

每种主要的算术运算以及其他几个运算都有复合赋值运算符:

    乘法/赋值(*=)

    除法/赋值(/=)

    取模/赋值(%=)

    加法/赋值(+=)

    减法/赋值(-=)

  

2.5.5.  三目

运算符是 ECMAScript 中功能最多的运算符,它的形式与 Java 中的相同。

variable = boolean_expression ? true_value : false_value;

  

该表达式主要是根据 boolean_expression 的计算结果有条件地为变量赋值。如果 Boolean_expression 为 true,就把 true_value 赋给变量;如果它是 false,就把 false_value 赋给变量。

例如:

var iMax = (iNum1 > iNum2) ? iNum1 : iNum2;

  

在这里例子中,iMax 将被赋予数字中的最大值。表达式声明如果 iNum1 大于 iNum2,则把 iNum1 赋予 iMax。但如果表达式为 false(即 iNum2 大于或等于 iNum1),则把 iNum2 赋予 iMax。

  

时间: 2025-01-07 06:37:58

Javascript学习总结-基本语法-(二)的相关文章

javascript学习笔记---ECMAScript语法(引用类型)

引用类型通常叫做类(class). 本教程会讨论大量的 ECMAScript 预定义引用类型. 引用类型 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 本教程会讨论大量的 ECMAScript 预定义引用类型. 从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引用类型. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现"类"这个词.ECMAScript 定义了"对象定

javascript学习笔记---ECMAScript语法(辅助)

1.区分大小写. test与Test变量是两个不同的变量 2.变量是弱变量. 与C,java等等语言变量不是很一样. 如下java代码 ? 1 2 3 4 int i =0; //再次赋值 i = 10;//ok i = "hello";//wrong 类型不匹配 javascript ? 1 2 3 4 var i = 9; //再次赋值 i = 10;//ok i = "hello";//ok 但是不建议这么干,如此会给开发造成干扰,不明确变量的类型.(变量命名

javascript学习笔记---ECMAScript语法(变量)

变量声明关键字var: var i = 1: var t = "asd"; var test1 = "hi", test2 = "hello"; 声明变量不一定要初始化, var i;//ok 另一方面在使用变量前若未加关键字var,则此变量为全局变量(此特性需特别记住). 变量名字: 变量名需要遵守两条简单的规则: 第一个字符必须是字母.下划线(_)或美元符号($) 余下的字符可以是下划线.美元符号或任何字母或数字字符 命名变量规则: Came

Javascript学习总结-基本语法-(一)

1.1.javascript简介(引用百度百科解释) JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成.因为Netscape与Sun合作,Netscape管理层希望它外观看

JavaScript 学习笔记— —闭包(二)

闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包的定义及其优缺点 闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 使用闭包有一个优点,也是它的缺点,就是可以把局部变量驻留在内存中,可以避免使用全局变量.全局变量在每个模块都可调用,这势必将是灾难性的.(所以推荐使用私有的,封装的局部变量.) 一般函数执行完毕后,局部活动对象就被销毁,内存

Javascript学习总结-基本语法-(三)

2.6.       流程控制语句 2.6.1.  判断 判断语句 if 语句的语法: if (condition) statement1 else statement2 如果条件计算结果为 true,则执行 statement1:如果条件计算结果为 false,则执行 statement2. 注意: 判断的条件会发生自动类型转换: number:如果非0为true,0为false string:如果非null或非空为true,否则为false undefined:false NaN:    f

JavaScript学习代码整理(二)--函数

//JavaScript函数 //简单的求和函数 function sum(a,b) { return a + b; } //函数可以存储在变量中,也可以通过变量调用函数 x = sum(a,b); x(1,2); //自调用函数 (function(){ var x = "Hello"; //以上函数实际上是一个 匿名自我调用的函数 (没有函数名). }) //arguments.length 属性返回函数调用过程接收到的参数个数: function MyFunction(a,b,c

JavaScript 学习笔记— —Event(二)

标准的事件绑定函数是 addEventListener 函数,而 IE 浏览器(IE9 以下)则是用 attachEvent. // 实现一个通用的,跨多种浏览器的时间绑定函数 function addEvent(el, type, fn) { if (window.addEventListener) { el.addEventListener(type, fn, false); } else if (window.attachEvent) { el.attachEvent('on' + typ

JavaScript学习笔记(十二)---- 事件

核心概念: 事件流:事件流描述的是从页面中接收事件的顺序.IE的事件流是事件冒泡,Netscape的事件流是事件捕获流. 在你点击按钮的同时,你也单击了按钮的容器元素,甚至也单击了整个页面. 1) 事件冒泡:IE的事件流 事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点.所有现代浏览器都支持事件冒泡. 事件冒泡的过程,当单击了页面中div元素,这个click事件会按照如下顺序传播: 2) 事件捕获:Netscape Communicator团队提出的另一种事件流 事件捕获的用意在