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 ...
随机推荐
- 30岁程序员的焦虑 Anxiety of 30-year-old Programmers
还有四个月,我就30周岁了.圈里都在传30岁程序员的焦虑,我也焦虑.身边的朋友,除了已经上岸的一部分,说不焦虑的,几乎找不到. 我们不妨认真地来聊一下这个话题:30岁,程序员,焦虑. 首先,什么是焦虑 ...
- Java工程打包成jar可执行文件
将一个工程中的类打包成jar文件,步骤参考如下: 1.选择file -> project structure 2. 选择Arifacts->JAR->form modules wit ...
- redis之使用
redis之使用 redis ================================= 1.自动分配.你在什么时候用到了自动分配? 答:市场部或运营部招来的新的客户,单条(批量)录入数据的 ...
- Django模板语言,标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- GYM 101572I(有向图上最小环)
逗号空格是假的,全都直接连边就行. 提供一个迪杰n次的图上最小环板子. #include <cstdio> #include <cstring> #include <io ...
- tomcat jndi 数据源
web.xml <!-- ================================================================================ --& ...
- qt QMessageBox 中文乱码的问题
QMessageBox::information(this,"Warn", "请插入U盘"); ==================> QMessageB ...
- Ubuntu18.10设置静态IP、DNS、卸载无用软件
设置静态IP root@xueji:~# vim /etc/network/interfaces # interfaces() ) and ifdown() auto lo iface lo inet ...
- BZOJ3004: 吊灯(结论 毒瘤)
题意 $n$个节点的树,判断能否划分成$\frac{n}{k}$个大小为$k$的联通块 Sol 首先$k$必须是$n$的倍数. 然后刚开始我就非常傻的以为输出所有约数就行了.. 但是图是这样,$k = ...
- 准备Kendo UI 开发环境
准备 首先你需要从 Telerik 网站下载试用版开发包,注意需要注册后才能下载. 下载后直接解压后包含下面几个文件和目录: ./examples – 示例. /js – minified 化后的 J ...