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 ...
随机推荐
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- IT兄弟连 Java语法教程 Java语言的跨平台特性
什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...
- 洛谷P2194 HXY烧情侣
题目描述 众所周知,\(HXY\)已经加入了\(FFF\)团.现在她要开始喜\((sang)\)闻\((xin)\)乐\((bing)\)见\((kuang)\)地烧情侣了.这里有\(n\)座电影院, ...
- vue中axios开启cookies
- 2017 ACM/ICPC Asia Regional Shenyang Online cable cable cable
Problem Description Connecting the display screen and signal sources which produce different color s ...
- JavaScript读取文本,并渲染在html
html <pre id="myText" style="word-wrap: break-word; white-space: pre-wrap; white-s ...
- c++笔记1
using namespace std:命名空间可以保证一些命名能够在全局不冲突.如用户可以通过声明命名空间,然后用运算符::区别同名的不同变量 using namespace std;namespa ...
- c# 视频播放
发表于: 2003-10-15 20:39:21 搞定了,嘿嘿!首先非常感谢zoujiaming在邮件中给我指了条路:用C#调用API搞定!!!使用的是mciSendString API函数主要参考了 ...
- Jquery4
w3s例子http://www.w3school.com.cn/jquery/event_keyup.asp Jquery插件 http://www.cnblogs.com/afuge/archive ...
- mongodb的创建删除数据库
1.创建数据库 use 命令 MongoDB use DATABASE_NAME 用于创建数据库.该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库. 语法: use DATABASE ...