笔记-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& ...
随机推荐
- Date 类 02
Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...
- 《android开发艺术探索》读书笔记(六)--Drawable
接上篇<android开发艺术探索>读书笔记(五)--RemoteViews [BitmapDrawable] 简单的图片 <!xml version="1.0" ...
- UVA - 10048 Audiophobia Floyd
思路:套用Floyd算法思想,d(i, j) = min(d(i,j), max(d(i,k), d(k,j)),就能很方便求得任意两点之间的最小噪音路径. AC代码 #include <cst ...
- UVA-673 括号匹配--栈
如果是一个合法的序列,每对配对的括号的两个字符('(' 和 ')' 或者 '[' 和 ']')一定是相邻的,每次判断下该字符是否有配对即可. 如果配对,将左括号出栈即可.特别注意:空格也是合法的. A ...
- 傅里叶变换 - Fourier Transform
傅里叶级数 傅里叶在他的专著<热的解析理论>中提出,任何一个周期函数都可以表示为若干个正弦函数的和,即: \[f(t)=a_0+\sum_{n=1}^{\infty}(a_ncos(n\o ...
- 自动化测试 selenium中WebDriver 和WebElement的区别
之前在做UI自动化测试中 经常会用到 WebDriver 和 WebElement两个类 以前对这两个类总感觉有点傻傻分不清 昨天看了下之前下的代码 结合自己的理解 对着两个类的区别和关系 ...
- Minicom串口工具安装及配置
Minicom串口工具安装及配置 1. 简述 嵌入式开发多采用串口线连接电脑进行开发及调试. 2 安装及配置串口工具(以Minicom为例) Tiny4412开发板提供的有RS232电平的DB9公头接 ...
- Vue项目搭建及原理二
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 10.5px "Trebuchet MS"; ...
- 单片机:STC89C52的最小单元
STC89C52RC是STC公司生产的一种低功耗.高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器.STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51 ...
- APACHE服务器出现No input file specified.的完美解决方案
启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.” 原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确 ...