笔记-JS高级程序设计-基本概念篇
1:JS中的一切(变量,函数名和操作符)都是区分大小写的
2:标识符(变量,函数,属性的名字,以及函数的参数),第一个字符必须是字母,下划线,或者美元$,书写方式采用驼峰式,不能将关键字作为标识符。
3:JS的变量是松散类型,每个变量仅仅是一个用于保存值的占位符,未初始化的变量都会保存一个特殊值--undefined。
4:JS的五种基本数据类型(Undefined,Null,Boolean,Number,String),复杂数据类型--Object(本质是一组无序的键值对组成)。从技术上讲,函数在JS当中属于对象,但是他不应该是一种数据类型。所以通过typeof操作符(不是函数)来区分很有必要。
5:Undefined类型只有一个特殊值--undefined。比如说声明了但是没有初始化的变量。未定义的变量和未初始化的变量采用typeof都是undefined,所以显式地初始化变量很远必要。
6:Null类型只有一个值--null。null表示一个空指针对象,如果定义的变量将来准备保存对象,那么初始化为null,这样直接检查null就可以知道相应的变量是否已经保存了一个对象的引用。undefined是派生与null,所以undefined == null 为true。
7:Boolean只有true和false两个值。JS所有类型的值都有与这两个Boolean值等价的值,将一个值转换为对应的Boolean采用Boolean()函数就可以。转换为false的其他值为(空字符串“”,0和NaN,null,undefined)
8Number
1浮点数值:Number类型来表示整数和浮点数值。八进制字面值(在严格模式中无效)的第一位必须为0(070解析为八进制的56),如果字面值中的数值超过范围,那么前导零会被忽略(079解析为79),浮点数的精度为17位小数,所以(0.1+0.2 不等于0.3)永远不要测试某个特定的浮点数值,科学计数法(3.125e7=3125000),(0.0000003 =3e-7)。
2数值范围:超过范围的值会被自动转为Infinity(也分正负),Infinity是不能参与计算的,要想确定一个数值是否超出范围采用isFinite()函数(返回true或者false)。
3NaN:非数值也是一个特殊的数值。这个数值表示一个要返回数值的操作数未返回数值的情况(这样就不会报错了,比如任何值除以0都会报错)。NaN有两个非常特点,任何涉及NaN的操作都会返回NaN,NaN与任何值都不会相等(包括他自己)。isNaN()检测某个值是否可以转换为数值,不能转换的话就返回true,也就表示这个参数"不是数值"。
4数值转换:把非数值转换为数值:Number(),parseInt(),parseFloat()。Number适用于任何数据类型,后面两个则专门将字符串转换成数值。Number的转换规则太复杂了(自己去看书),parseInt主要是看字符串是否符合数值模式,忽略空格直接找到第一个非空格字符,如果第一个字符串不是数字字符或者负号,那么就直接返回NaN,如果是数字字符或者负号,就继续解析直到遇到了一个非数字字符(小数点不是数字字符),识别各种整数格式。使用的时候最好指定基数(即多少进制)。
parseFloat解析的字符串中的第一个小数点是有效的,第二个区别在于他会始终忽略前导的零,并且只解析十进制数,但十六进制格式的字符串则始终会被转换为0
9String
1字符串的特点:字符串一旦创建,它们的值就不能再改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用一个新的字符串重新填充该变量。
笔记-JS高级程序设计-基本概念篇的更多相关文章
- 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图
读书笔记 - js高级程序设计 - 第十三章 事件 canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好 有时候即使浏览器支持,操作系统如果缺缺 ...
- 笔记-JS高级程序设计-BOM篇
BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的 ...
- 初心不负 笔记-JS高级程序设计-引用类型篇-Array
ES3方法集合: 1join()方法,将一个数组里面的所有元素转换成字符串,然后再将他们连接起来返回一个字符串,通过制定的符号,默认值为逗号.不会改变原数组 ,,,,]; a.join(); &quo ...
- 读书笔记 - js高级程序设计 - 第三章 基本概念
启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰 是一个重要原则 5种简单数据类型 Undefined Null Boolean Num ...
- 笔记-JS高级程序设计-变量,作用域和内存问题
1在将一个值赋给变量时,解析器必须确认这个值是基本类值还是引用类型值,基本类型值是按值访问的,可以操作保存在在变量中的实际值,引用类型是保 存在内存中的对象,JS不允许直接访问内存中的位置,所以实际操 ...
- 读书笔记 - js高级程序设计 - 第五章 引用类型
引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string" 需要实验 访问属性的方法 .号和[] 一般情况下要 ...
- 读书笔记 - js高级程序设计 - 第十章 DOM
文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node ...
- 读书笔记 - js高级程序设计 - 第八章 BOM
BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网 ...
- 读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3
Node类型的变化 访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px& ...
随机推荐
- HDU 3001(状态压缩dp)
状态压缩dp的第一题! 题意:Mr ACMer想要进行一次旅行,他决定访问n座城市.Mr ACMer 可以从任意城市出发,必须访问所有的城市至少一次,并且任何一个城市访问的次数不能超过2次.n座城市间 ...
- python自动化--语言基础1--数据类型及类型转换
Python中核心的数据类型有哪些?变量(数字.字符串.元组.列表.字典) 什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据不可更改,比如: a = ("abc" ...
- Java经典编程题50道之三十五
有一个数组,将其最大的元素与第一个元素交换,最小的元素与最后一个元素交换,然后输出数组. public class Example35 { public static void main(Str ...
- Ubantu16.04 redis安装
通过FTP方式将redis的安装包从windows上传到linux上 解压命令:$sudo tar -zxf ~/Downloads/redis-3.2.7.tar.gz -C /usr/local ...
- mysql那些事
---恢复内容开始--- 登录 mysql登录 -u+用户 -p 密码 显示数据库 show databases; 使用某个数据库 use xxx; 显示数据库表 show tables 显示表结构 ...
- 高通ASOC中的codec驱动
ASOC的出现是为了让codec独立于CPU,减少和CPU之间的耦合,这样同一个codec驱动就无需修改就可以匹配任何一款平台. 在Machine中已经知道,snd_soc_dai_link结构就指明 ...
- CodeForces-747B
在两种情况下不能得到答案:1.n不是4的整数倍 2.某个字符的数量大于n/4 如果满足上述条件直接打印"===",否则填充数组. AC代码: #include<cstdio& ...
- Linux socket网络编程基础 tcp和udp
Socket TCP网络通信编程 首先,服务器端需要做以下准备工作: (1)调用socket()函数.建立socket对象,指定通信协议. (2)调用bind()函数.将创建的socket对象与当前主 ...
- android自定义View的绘制原理
每天我们都会使用很多的应用程序,尽管他们有不同的约定,但大多数应用的设计是非常相似的.这就是为什么许多客户要求使用一些其他应用程序没有的设计,使得应用程序显得独特和不同. 如果功能布局要求非常定制化, ...
- android自定义Notification通知栏实例
项目有个需求,需要在发送Notification的时候动态给定url的图片.大概思路如下:自己定义一个Notification的布局文件,这样能够很方便设置View的属性. 首先加载网络图片,使用Bi ...