1,标识符

标识符是程序中常量或变量命名的一种术语称呼,并不是所有的字符组成都是一个合法的标识符,规范如下:

  1. 标识符的组成部分可以是字母,数字,下划线或美元($)符号
  2. 标识符开头是字母,下划线或美元($)符号,而不能是数字
  3. 标识符不能出现一些特殊符号(如:¥,%,+)也不能存在空格
  4. 不能是JavaScript中的保留字(即关键字),如:var,new,if,else 等
  5. 标识符区分大小写,myName和MyName是两个不同的标识符

以下标识符是正确的:

myPencil  myName  _myAge  $mySex  xyz123  _123abc  Var  New

以下标识符时错误的

123abc  my+Name  my,.Age  var  new

2.JavaScript中的数据类型

  1. 数值型(number)

整型

整型数据,即我们通常所说的整数,如:1、23、100、200等等。

整型数据可以是十进制、八进制和十六进行,默认采用的是十进制

如果需要表示八进制数据,则必须以数字0开头。如八进制037,其十进制值为31。

如果需要表示十六进制数据,则必须以0x或0X开头,其中0为数字零。如十六进制0x3D,其十进制值为61。

浮点型

浮点型数据,即我们通常所说的小数。如:3.14、12.34、100.5等等。

实型数据除了可以使用常用格式外,还可使用科学计数法来表示。如:8.2的8次方——8E+8;8.2的负8次方——8.2E-8。

特殊数值

Infinity当一个正浮点型数据大于或等于其所能表示的最大值时(2的1024次方),则其结果是一个特殊的正无穷大,JavaScript将它标识为Infinity。

-Infinity当一个负浮点型数据小于或等于其所能表示的最小值时(-2的1024次方),则其结果是一个特殊的负无穷大,JavaScript将它标识为- Infinity。

NaN即Not a Number,表示一个值并不是合法的数值形式,如字符串(纯数字字符串除外)。这个数值比较特殊,它和任何数值都不相等,包括它自己在内,所以我们专门通过函数isNaN()来检测这个值!

2. 字符串型

JavaScript中没有单独的字符常量,而是有若干字符组成的字符串常量

字符串型常量必须使用单引号('')或双引号("")将各组成字符括起来,如"ab","abook"

当一个字符串不包括任何字符时,其形式为""或''表示一个空字符串

在JavaScript中,有些特殊的符号不能直接进行输出,在此需要一种特殊的字符常量来表示,即转义字符

转义字符必须以反斜杠(\)开头,后面跟一个或几个特定的字符

转义字符

Unicode码

含义

\b

\u0008

退格

\t

\u0009

横向跳到下一个制表位置

\n

\u000A

回车换行

\v

\u000B

竖向跳到下一制表位置

\f

\u000C

走纸换页

\r

\u000D

回车

\”

\u0022

双引号

\’

\u0027

单引号

\\

\u005C

反斜杠

\xnn

十六进制代码nn(00~FF)表示的字符。

\unnnn

十六进制代码nnnn(0000~FFFF)表示的Unicode编码。

\x3c

字符“<”

\x3e

字符“>”

3,布尔型(boolean)

布尔值用于表示一个事物的正反面

该类型只有true和false,通常用于条件判断语句

4,空值型(null)

这是一个值,null,表示一个变量所指向的对象为空值!

它表示“无值”,并不表示“null”这4个字母,也不是0和空字符串,而是JavaScript中的一种对象类型

null可用于初始化变量,以避免产生错误,也可以用于清除变量的内容,从而释放与变量相关联的内存空间。当把null赋值给某个变量后,这个变量中就不再保存任何有效的数据了!

5,未定义型(undefined)

这是一个值,undefined,表示变量未声明或未初始化或对象的某个属性不存在。

null表示赋给变量的值为“空”,“空”是一个特殊意义的值,而undefined则表示变量并未存在或未初始化,变量的值还处于未知状态!

在使用等于运算符“==”的时候,null和undefined均和自己相等,同时互相之间也相等,但和其他任何值都不相等。

严格等于运算符“===”将null和undefined的值看做不相等。

3,JavaScript中数据类型的转换

           隐式转换

           数值字符串与数值相加,进行字符串的连接运算,最后结果为string类型

"123"+123 ="123123"

数值字符串与数值相减,进行算术减法运算,最后结果为number类型

"123"-123 = 0

字符串与其他任何类型的数据进行"+"运算,所进行的字符串的连接运算,最后的结果为string类型

null+”123”+undefined+”abc”+123+”fgh”+true = ”null123undefinedabc123fghtrue”

true与数值进行想加减,将自动转换为1,然后参与运算,最后结果为number类型!

true+true+1 = 3

false与数值进行相加减,将自动转换为0然后参与运算,最后结果为number类型!

true+false+1=2

null与null、null与数值相加减,null的值始终为0,最后结果为number!

null+null+1 = 1

undefined与数值相加减,最后的结果始终为NaN

null+undefined+true+1 = NaN 

     基本转换

string()

将其他类型的值转换为string类型

String(280)+ String(true) = “280true”

Number()

将可以转换为数值的其他类型转换为number类型

Number(”123”)+Number(true) +Number(false) +Number(null) = 124

  Boolean()

将其他类型的值转化为boolean类型!除了0、null、undefined、NaN、“”转换后的结果为false外,其他的值都将被转换为true。

String(“123”+Boolean(0)+Boolean(null)+Boolean(“ab”)) = “123falsefalsetrue”

 提取转换

          parseInt(string,n)

该函数将string字符串参数中最前面能够转换成整型数值的子字符串转换为数值!

其中参数n用来指定字符串参数将以什么进制来进行转换,可以是2、8、10、16以及2~32之间的任意数值,如果不指定该参数,则默认以10进制来进行转换,转换后的值都将以十进制的形式存在!(注意:当不指定n参数时,如果字符串的首字符为数字0,将会按照8进制进行转换!)
   当string字符串首部不存在数字子串时,该函数最终返回NaN!

parseInt(“100.23abc”) = 100
parseInt(“+100.23abc”) = 100
parseInt(“-100.23abc”) = -100
parseInt(“0100.23abc”) = (0100)8 = 64
parseInt(“100.23abc”,2) = (100)2 = 4
parseInt(“100.23abc”,16) = (100)16 = 256
parseInt(“100.23abc”,8)= (100)8 = 64

parseFloat(string)

该函数将string字符串参数中最前面能够构成实数的字符串转换为数值

当string字符串收不不存在数字字符串时,改函数最终返回NaN

parseFloat(“123.23abc”) = 123.23
parseFloat(“+123.23abc”) = 123.23
parseFloat(“-123.23abc”) = -123.23
parseFloat(“123.23.34ab”) = 123.23
parseFloat(“.123.23.34ab”) = 0.123
parseFloat(“0123.adf”) = 123

eval(string_expression)

该函数将计算字符串表达式的值并返回

如果字符串不是一个合法的表达式,将会发生异常,我们可以通过try…catch语句来判断此种情况的发生!

eval(“3+3+3+3+3*10”) = 42
eval(“3+3+4+(3+2)*10”) = 60
eval(“-3+4+3+4*10/2”) = 28
eval(“3>2”) = true
eval(“3++34-2”) //将会引发异常!

JavaScript的基础知识的更多相关文章

  1. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  2. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  3. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

  4. JavaScript 之基础知识

    JavaScript 基础知识 JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaS ...

  5. JavaScript对象基础知识总结

    1.什么叫JavaScript对象? 定义:名值对的集合.简单的讲就是容纳属性值和属性值的容器,这些属性可以是无序的,基本上JavaScript中所有的事物都可以看成对象. 拓展:我们经常说,数组也是 ...

  6. JavaScript语言基础知识8

    这篇文章是对前面学习的知识进行总结: 1.JavaScript支持多种数据类型,如数值类型.字符串类型.布尔类型等. 2.在JavaScript中,字符串是用引號括起来的字符系列,转义字符能够用来表示 ...

  7. JavaScript笔记——基础知识(一)

    <Script>标签属性 <script>xxx</script>这组标签,是用于在 html 页面中插入 js 的主要方法.它主要有以下 几个属性: charse ...

  8. javascript 正则表达式基础知识汇总

    正则表达式:对字符串中的信息实现查找.替换和提取操作.(不支持注释和空白,必须写在一行内)正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)例如:var pattern = /s$/;     ...

  9. JavaScript事件基础知识总结【思维导图】

    另外附上来自Nicholas C.Zakas<JavaScript高级程序设计 第3版>中的跨浏览器兼容EventUtil对象. var EventUtil = { //注册事件 addH ...

  10. JavaScript对象基础知识

    1.对象所包含的元素一组包含数据的属性.如人的名字.书的价格和手机型号等.允许对属性中所包含的数据进行操作的方法. 2.引用对象的途径一个对象真正地被使用,可以采用以下几种方式.引用Javascrip ...

随机推荐

  1. nginx 反向代理配置 upstream

    最近项目要写后台,用nodejs写服务接口,然后研究了下nginx反向代理,各种坑下来,也总算把代理配了下来. 我本地用nodejs起了两个服务,一个端口是8888,一个端口是8889,在启动ngin ...

  2. jconsole 本地连接失败

    http://limaoyuan.iteye.com/blog/1541745 加jvm 启动参数即可: -Dcom.sun.management.jmxremote  -Dcom.sun.manag ...

  3. 一份比较完整的gulpfile.js

    var gulp = require('gulp'); //工具 var autoprefixer = require('gulp-autoprefixer'); var include = requ ...

  4. Python随笔---return与print,全局变量与局部变量

    Return是指返回一个数值,一般在函数中应用较多 Print则是指把结果打印出来,显示在屏幕上 def sum(a,b): total=a+b print('函数内:',total) return ...

  5. Web自动化测试—PO设计模式(三)

    test_case目录下面放你要执行的用例 目录结构 ui_auto_test --src --test_case --__init.py --test_login_case --pages --__ ...

  6. url、src与href属性的区别

    http://blog.csdn.net/rickgreen/article/details/54943500

  7. Spring创建对象的几种方法

    一.通过构造器 无参构造器 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  8. (转)nginx应用总结(2)--突破高并发的性能优化

    原文:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题. ...

  9. (转)linux下控制帐户过期的多种方法

    linux下控制帐户过期的方法:原文:http://blog.51cto.com/oldboy/1289144企业里一般给无人管理的角色账户或开发人员临时需求等可以设定账户有效期,提升安全!法一:添加 ...

  10. WinForm 开发框架 Jade UI Beta

    Jade UI Demo Beta 个人网站:http://www.2to.net 开源地址:https://github.com/dcdlove/JadeUI 预览DEMO下载: http://pa ...