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. [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件

    目录:[Swift]Xcode实际操作 本文将演示如何创建各种类型的文件. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...

  2. spring框架_AOP和注解

    1.什么是AOP :全称是Aspect Oriented Programming即:面向切面编程. 简单来说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础 ...

  3. iphone6 iphone6 plus 放大显示模式高分辨率模式问题

    分为兼容模式和高分辨率模式. 兼容模式 当你的 app 没有提供 3x 的 LaunchImage 时,系统默认进入兼容模式,大屏幕一切按照 320 宽度渲染,屏幕宽度返回 320:然后等比例拉伸到大 ...

  4. 微信分账功能与微信支付企业付款相关内容详解(payjs版)

    PAYJS开通微信分账功能以来,有很多同学咨询相关情况.很多同学关心有没有什么办法,可以让自己的商户号快速开通企业付款功能.这里就介绍下微信分账的具体相关内容,可以完美解决问题. 一.什么是微信分账? ...

  5. 用户角色权限查询添加bug集锦 用户密码加密 MD5 加盐 随机盐 spring的加密bcrypt

    package cn.itcast.encode; import org.apache.commons.lang3.RandomStringUtils; import org.springframew ...

  6. iOS文字转语音(语音朗读)

    1.第一步导入framework 2.导入头文件 #import <AVFoundation/AVSpeechSynthesis.h> 3. 设置代理 并写下面方法  (注:代理方法用不到 ...

  7. C# 数组之List<T>

    一.引言 List<T>是ArrayList的泛型等效类,底层数据结构也是数组. 相比Array而言,可以动态的拓展数组长度.增删数据 相比ArrayList而言,由于声明的时候就已经规定 ...

  8. Tkinter 的三大布局管理器 pack、grid 和 place用法汇总

    学习python的tkinter免不了要对各个组件进行位置的排放与设定,常用的布局管理器有grid,pack和place.这三种均用于同一父组件下的组件布局,但是也是有区别的,先看下他们各自的含义吧. ...

  9. Linux上使用VIM进行.Net Core

    如何在Linux上使用VIM进行.Net Core开发 对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE.Windows上有Visual Studio, Mac上有Vi ...

  10. 061 Rotate List 旋转链表

    给定一个链表,将链表向右旋转 k 个位置,其中 k 是非负数.示例:给定 1->2->3->4->5->NULL 且 k = 2,返回 4->5->1-> ...