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 ...
随机推荐
- [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件
目录:[Swift]Xcode实际操作 本文将演示如何创建各种类型的文件. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...
- spring框架_AOP和注解
1.什么是AOP :全称是Aspect Oriented Programming即:面向切面编程. 简单来说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础 ...
- iphone6 iphone6 plus 放大显示模式高分辨率模式问题
分为兼容模式和高分辨率模式. 兼容模式 当你的 app 没有提供 3x 的 LaunchImage 时,系统默认进入兼容模式,大屏幕一切按照 320 宽度渲染,屏幕宽度返回 320:然后等比例拉伸到大 ...
- 微信分账功能与微信支付企业付款相关内容详解(payjs版)
PAYJS开通微信分账功能以来,有很多同学咨询相关情况.很多同学关心有没有什么办法,可以让自己的商户号快速开通企业付款功能.这里就介绍下微信分账的具体相关内容,可以完美解决问题. 一.什么是微信分账? ...
- 用户角色权限查询添加bug集锦 用户密码加密 MD5 加盐 随机盐 spring的加密bcrypt
package cn.itcast.encode; import org.apache.commons.lang3.RandomStringUtils; import org.springframew ...
- iOS文字转语音(语音朗读)
1.第一步导入framework 2.导入头文件 #import <AVFoundation/AVSpeechSynthesis.h> 3. 设置代理 并写下面方法 (注:代理方法用不到 ...
- C# 数组之List<T>
一.引言 List<T>是ArrayList的泛型等效类,底层数据结构也是数组. 相比Array而言,可以动态的拓展数组长度.增删数据 相比ArrayList而言,由于声明的时候就已经规定 ...
- Tkinter 的三大布局管理器 pack、grid 和 place用法汇总
学习python的tkinter免不了要对各个组件进行位置的排放与设定,常用的布局管理器有grid,pack和place.这三种均用于同一父组件下的组件布局,但是也是有区别的,先看下他们各自的含义吧. ...
- Linux上使用VIM进行.Net Core
如何在Linux上使用VIM进行.Net Core开发 对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE.Windows上有Visual Studio, Mac上有Vi ...
- 061 Rotate List 旋转链表
给定一个链表,将链表向右旋转 k 个位置,其中 k 是非负数.示例:给定 1->2->3->4->5->NULL 且 k = 2,返回 4->5->1-> ...