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 ...
随机推荐
- 聊聊ES6中的generator
generatorgenerator(生成器)是ES6标准引入的新的数据类型.一个generator看上去像一个函数,但函数执行中间可以停止. ES6定义generator标准的哥们借鉴了Python ...
- MySQL的slave_exec_mode参数作用
主从复制中常会遇到的问题就是1062主键重复 如果在读写分离的架构中,slave同步失败会对业务造成很大的影响的 因此,很有必要对主从复制做些监控,做些自动化的处理.涉及到MySQL的一个参数slav ...
- Ubuntu 最新设置阿里云更新源
可将 http://cn.archive.ubuntu.com/ubuntu/ 替换为下列任意服务器: Ubuntu 官方(欧洲,国内较慢,无同步延迟) http://archive.ubuntu.c ...
- echart option属性
option 图表选项,包含图表实例任何可配置选项: 公共选项 , 组件选项 , 数据选项 名称 描述 {color}backgroundColor 全图默认背景,(详见backgroundColor ...
- jQuery解决ajax请求的跨域问题
这两天工作中频繁的遇到JS的跨域问题,都通过绕开ajax请求的方式.特地百度了一下,把跨域问题解决了.在这分析一下 首先贴上js的页面代码: <html> <head> < ...
- 什么是语义化的HTML?有何意义?为什么要做到语义化?
一.什么是语义化的HTML? 语义化的HTML就是正确的标签做正确的事情,能够便于开发者阅读和写出更优雅的代码的同时让网络爬虫很好地解析. 二.为什么要做到语义化? 1.有利于SEO,有利于搜索引擎爬 ...
- 045 Jump Game II 跳跃游戏 II
给定一个非负整数数组,你最初位于数组的首位.数组中的每个元素表示你在该位置的最大跳跃长度.你的目标是用最小跳跃次数到达最后一个索引.例如: 给定一个数组 A = [2,3,1,1,4]跳到最后一个索引 ...
- sql like 多条件
select * from student where name like 'mike%' or name like 'rose%';
- linux文件系统和目录树的关系
文件系统是和底层的硬件系统紧密关联的,文件系统相当于是dev(设备或硬件)在Linux上面的显示,如/dev/hdc2 而目录树是逻辑的概念,其可以通过挂载的方式连接文件系统,先用df查看本地的文件系 ...
- 使用git和github管理项目代码
以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...