笔记-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& ...
随机推荐
- 在windows端和linux端安装Git
一.Git的安装 1. 在windows端 到地址:https://git-scm.com/downloads 选择对应版本下载后,进行傻瓜式安装即可 2. 在linux端 查看是否安装了git,出 ...
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
前言 巩固Servlet+JSP开发模式,做一个比较完整的小项目. 成果图 该项目包含了两个部分,前台和后台. 前台用于显示 后台用于管理 该项目可分为5个模块来组成:分类模块,用户模块,图书模块,购 ...
- YUM安装软件
YUM:介绍.工作流程.本地yum.网络yum.yum的相关命令 一.What is YUM YUM是基于rpm但更胜于rpm的软件管理工具 YUM的优点: 1.更方便的管理rpm软件包 2.自动解决 ...
- maven指定部署的服务器类型
<!-- 指定部署的服务器类型 --> <plugins> <!-- <plugin> <groupId>org.apache.tomcat.ma ...
- PHP网站的安全要点
1. 删除不必要的模块 PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m 一旦你查看了列表,现在 ...
- cf B. Mishka and trip (数学)
题意 Mishka想要去一个国家旅行,这个国家共有个城市,城市通过道路形成一个环,即第i个城市和第个城市之间有一条道路,此外城市和之间有一条道路.这个城市中有个首中心城市,中心城市与每个城市(除了 ...
- nyoj358 取石子(五) 斐波那契博弈
我写代码找的规律:如果这个n是斐波那契数,那么它是P态,如2,3,5,8..... 找规律的代码: #include <cstdio> #include <cmath> #in ...
- kibana常用聚合查询DSL语句记录
-------- GET winlogbeat-2017.11.*/_search { "query": { "bool": { "must" ...
- 【推荐】免费,19 款仿 Bootstrap 后台管理主题下载
声明: 1. 本篇文章提到的仿 Bootstrap 风格的主题,是基于 jQuery 的 ASP.NET MVC 控件库的主题. 2. FineUIMvc(基础版)完全免费,可以用于商业项目. 目录 ...
- caffe错误
一些caffe错误 训练时很快梯度爆炸,loss猛增至nan 如果找不到数据上的原因的话,可以怀疑caffe框架有问题,换用其它版本试试.比如我遇到的问题是在训练时使用了Accuracy层,而该层的实 ...