JavaScript的基础知识
1,标识符
标识符是程序中常量或变量命名的一种术语称呼,并不是所有的字符组成都是一个合法的标识符,规范如下:
- 标识符的组成部分可以是字母,数字,下划线或美元($)符号
- 标识符开头是字母,下划线或美元($)符号,而不能是数字
- 标识符不能出现一些特殊符号(如:¥,%,+)也不能存在空格
- 不能是JavaScript中的保留字(即关键字),如:var,new,if,else 等
- 标识符区分大小写,myName和MyName是两个不同的标识符
以下标识符是正确的:
myPencil myName _myAge $mySex xyz123 _123abc Var New
以下标识符时错误的:
123abc my+Name my,.Age var new
2.JavaScript中的数据类型
- 数值型(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的基础知识的更多相关文章
- 快速掌握JavaScript面试基础知识(三)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- 快速掌握JavaScript面试基础知识(二)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- javascript的基础知识及面向对象和原型属性
自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...
- JavaScript 之基础知识
JavaScript 基础知识 JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaS ...
- JavaScript对象基础知识总结
1.什么叫JavaScript对象? 定义:名值对的集合.简单的讲就是容纳属性值和属性值的容器,这些属性可以是无序的,基本上JavaScript中所有的事物都可以看成对象. 拓展:我们经常说,数组也是 ...
- JavaScript语言基础知识8
这篇文章是对前面学习的知识进行总结: 1.JavaScript支持多种数据类型,如数值类型.字符串类型.布尔类型等. 2.在JavaScript中,字符串是用引號括起来的字符系列,转义字符能够用来表示 ...
- JavaScript笔记——基础知识(一)
<Script>标签属性 <script>xxx</script>这组标签,是用于在 html 页面中插入 js 的主要方法.它主要有以下 几个属性: charse ...
- javascript 正则表达式基础知识汇总
正则表达式:对字符串中的信息实现查找.替换和提取操作.(不支持注释和空白,必须写在一行内)正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)例如:var pattern = /s$/; ...
- JavaScript事件基础知识总结【思维导图】
另外附上来自Nicholas C.Zakas<JavaScript高级程序设计 第3版>中的跨浏览器兼容EventUtil对象. var EventUtil = { //注册事件 addH ...
- JavaScript对象基础知识
1.对象所包含的元素一组包含数据的属性.如人的名字.书的价格和手机型号等.允许对属性中所包含的数据进行操作的方法. 2.引用对象的途径一个对象真正地被使用,可以采用以下几种方式.引用Javascrip ...
随机推荐
- 【并发编程】一文带你读懂深入理解Java内存模型(面试必备)
并发编程这一块内容,是高级资深工程师必备知识点,25K起如果不懂并发编程,那基本到顶.但是并发编程内容庞杂,如何系统学习?本专题将会系统讲解并发编程的所有知识点,包括但不限于: 线程通信机制,深入JM ...
- Sublime Text 3 最新注册码激活码 和 Sublime Text 2 注册码
Sublime是一款很好用的很轻巧的编辑器,堪称一代神级编辑器.此篇文章用于简单学习记录下神器的激活码,不作其他用途.如有侵权,请联系删除,谢谢~~ 1.官方下载地址: http://www.su ...
- VRTK3.3.0-002获取手柄事件
1.首先创建VRScripts空物体,用来存放脚本,在其下创建Right空物体并添加VRTK_ControllerEvents脚本 2.Right作为右手手柄,拖拽到[VRTK_SDKManager] ...
- shell常用正则表达式
转载自: http://www.cnblogs.com/linhaifeng/p/6596660.html 和 http://www.blogjava.net/jasmine214--love/arc ...
- 洛谷P1002 过河卒
关于蒟蒻的我,刚刚接触DP.... 那么就来做一道简单DP吧.... 首先先看题: 题目描述 棋盘上AA点有一个过河卒,需要走到目标BB点.卒行走的规则:可以向下.或者向右.同时在棋盘上CC点有一 ...
- 字典排序permutation
理论 C++ 中的next_permutation 一般作为正序全排列的使用规则,其实这个就是正序字典排序的实现. 比如我们要对 列表 [1,2,3] 做full permutation 一般使用递 ...
- spring tx:advice事务配置
http://blog.csdn.net/bao19901210/article/details/17226439 http://blog.csdn.net/rong_wz/article/detai ...
- Ubuntu同时忘记用户密码和root密码
在设置密码的时候,用到了小键盘,重启后再次用小键盘输入密码时,发现输入的并不是数字,而是其他符号.所以在设置关键信息的时候,小键盘还是得慎用啊. 解决方案: 在引导界面也就是开机倒计时的时候,按下 e ...
- 《java学习三》jvm性能优化-------调优
常见参数配置 -XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+UseSerialGC 串行回收 -XX:+PrintGCDetails 更详细的GC日志 -X ...
- 初学Android,创建,启动,停止Service(五十八)
Service跟Windows系统里的服务概念差不多,都在后台执行,它跟Activity的最大区别就是,它是无界面的 开发Service与开发Activity的步骤类似 1.定义一个继承Service ...