JS高级程序设计笔记-ECMA基础

一、原始值和引用值

原始值:存储在栈(stack)中的简单数据段,它们的值直接存储在变量访问的位置。

引用值:存储在堆(heap)中的对象,存储在变量处的值是一个指针,指向存储对象的内存处。

二、原始类型:(基本数据类型)

undefined、null、boolean、number、string

三、typeof运算符(判断基本数据类型)

输出结果:undefined、boolean、number、string、object

1、undefined

当一个未声明的变量和一个声明但并未初始化的变量使用typeof都会输出undefined,如下代码所示

var value1;
//var value2
console.log(typeof value1);//undefined
console.log(typeof value2);//undefined

PS:当函数无明确返回值时,返回的也是undefined。

2、null类型

undefined派生自null。null表示尚未存在的对象。

3、number类型

(1)八进制:首数字为0;

(2)十六进制:首数字为0x;

(3)ECMAScript默认把6个或6个以上的前导0的浮点数转换为科学计数法;

(4)几个被定义为Number类型的特殊值:

Number.MAX_VALUE

Number.MIN_VALUE

(5)isFinit()方法:确定该数不是无穷大

(6) NaN (非数),特性:不能用于算数计算;

                与自身不相等;

(7) isNaN()方法:确定是否为NaN;

4、String类型

首字符从位置0开始,字符串最后一个字符的位置是字符串的长度减1;

四、转换

1、转换成字符串:toString()方法

Boolean类型:输出“true”或“false”

Number类型:根据两种模式:

       默认模式:相应数字值得字符串输出;

       基模式:输出不同进制形式数字对应的字符串;

2、转换成数字

只有对string类型调用这些方法才能正确运行,对其他类型返回NaN;

parseInt():

运行机制:从位置0开始查找判断是否为有效数字,如果不是返回NaN,如果是则继续向后查找,直到找到非有效数字,将之前的字符串转换为数字。

PS:parseInt()方法有基模式,将二进制、八进制、十六进制的字符串转化为整数,由第二个参数指定。

parseFloat():

运行机制:从位置0开始查找每个字符,直到出现第一个非有效字符,将之前的字符串转化为数字。第一个出现的小数点是有效字符,第二个是无效的。

PS:字符串必须以十进制形式表示浮点数,不能用八进制或十六进制形式,没有基模式。

3、强制类型转换

Boolean(value)

(1)转换成Boolean类型;

(2)转换的值至少是有一个字符的字符串、非0数字或对象时,返回true;

(3)转换的值为空字符串、数字0、undefined、Null,返回false;

Number(value):转换成数字;

(1)与parseInt(),parseFloat类似,但转化的是整个值,不是部分值。如果字符串值能完整的被转换,Number()将判断调用parseInt()还是parseFloat()。

String(value):将任何值转换成字符串;

原文地址:https://www.cnblogs.com/nerrol/p/8289120.html

时间: 2024-10-08 19:48:47

JS高级程序设计笔记-ECMA基础的相关文章

js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定

js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函数和一个布尔值.最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序:如果是false,表示在冒泡阶段调用事件处理程序. 要在按钮上为click事件添加事件处

JS高级程序设计--笔记

1.JS分三个部分:ECMAScript.DOM.BOM 1)ECMAScript:提供核心语言功能 2)DOM:提供访问和操作网页内容的方法和接口 3)BOM:提供与浏览器交互的方法和接口 2.在html页面写js代码,需要将代码放在<script></script>:并且中间不能出现字符串“</script>” 下方这个代码会报错:alert("</script>"); 可以对它进行转义: alert("<\/scri

读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

读书笔记 - js高级程序设计 - 第十三章 事件 canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好 有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){ drawing.getContext("2d"

javascript高级程序设计——笔记

javascript高级程序设计--笔记 基本概念 基本数据类型包括Undefined/Null/Boolean/Number和String 无须指定函数的返回值,实际上,未指定返回值的函数返回的是一个特殊的undefined值 变量.作用域和内存问题 基本类型值在内存中占据固定大小的空间,因此保存在栈内存中 引用类型的值是对象,保存在堆内存中 确定一个值是哪种基本类型用typeof,确定一个值是哪种引用用instanceof 所有变量都存在于一个执行环境当中,这个执行环境决定了变量的生命周期,

&lt;JS高级程序设计3&gt;_PART3

1.ECMAScript中所有数都以IEEE-754 64位格式存储,但位操作符不直接操作64位的值.是先64位转换成32位的整数,再操作,得到结果再转成64位. 2.首位是符号位.之后的31位代表整数的值. 3.用toString(2)打印二进制,得到的是被处理过的二进制. 4.按位非(NOT)~,数转成二进制,取反.相当于把操作数先变负再-1; 5.按位与(AND)&,两个数的二进制,有一个0结果就是0,两个都是1才为1. 6.按位或(OR)|,有一个1结果为1,都是0才为0. 7.按位异或

&lt;JS高级程序设计3&gt;_PART4

1.基本数据类型:Undefined,null,Number,String,Boolean.引用数据类型:保存在内存中的对象. 2.JS不允许直接访问内存中的位置,不能直接操作对象的内存空间.所以操作对象时,实际上是操作的对象的引用,而不是实际的对象. 3. var num1 = 1; var num2 = num1; 一个基本类型的变量向另一个赋值时,执行了复制操作,两个变量互不影响. var obj1 = new Object(); var obj2 = obj1; obj1.age = 2

javascript高级程序设计笔记1

最近在看javascript高级程序设计,看之前觉得自己的js学得还不错,然后,看了没几页就觉得自己好像没有学过一样,这主要写写我以前不完全了解的一些知识. 首先是关于基本数据类型的,从Number开始,以前经常用parseInt来转换数值,看过书才知道,这个函数的本意是专门用于把字符串转换成数值,而且以前也不知道它具体是怎么一个转换规则.先来看看Number()函数的转换规则: 1.如果是Boolean 值,true 和false 将分别被转换为1 和0.2.如果是数字值,只是简单的传入和返回

JS高级程序设计拾遗

<JavaScript高级程序设计(第三版)>反反复复看了好多遍了,这次复习作为2017年上半年的最后一次,将所有模糊的.记不清的地方记录下来,方便以后巩固. 0. <script>元素属性 async表示立即下载脚步,但不应该妨碍页面中其他操作: defer表示延迟到文档完全被解析和显示之后再执行.这两个属性都仅适用于外部脚步,而且现实中脚步不一定按顺序执行.指定async属性的目的是不让页面等待脚步下载和执行. 最好只包含一个延迟脚本,把延迟脚本放在页面最底部仍然是最佳选择.

JS高级程序设计(1-3章笔记)

第一章    JavaScript简介 1.1    JavaScript简史 1995.02- 公司:Netscape 主要人物:就职于Netscape的Brendan Eich(布兰登.艾奇) 事件:为Netscape Navigator 2开发一种名为LiveScript的脚本语言 1995.02-前夕 公司:Netscape 事件:临时将LiveScript改名为JavaScript 1995.02+ JavaScript1.0获得巨大成功 1996.08 公司:微软 IE3加入名为JS