ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

重读JavaScript高级程序设计

2019-02-03 17:49:27  阅读:360  来源: 互联网

标签:转换 变量 JavaScript 字符串 parseFloat 参数 parseInt 程序设计 重读


不断更新中~~~

第三章 基本概念

  1、变量声明但未初始化值是undefined,而未声明的变量只能执行typeof操作,并且未初始化和未声明用typeof都同样返回undefined

  2、Number()、parseInt()和parseFloat()的区别:

    (1)Number()可以用于任何数据类型,parseInt()和parseFloat()专门用于把字符串转成数值

    (2)Number()转换空字符返回0,parseInt()和parseFloat()则转换为NaN

    (3)Number()只有在字符串为纯数值时才能转换为数值,parseInt()和parseFloat()只有遇到非数字字符时才停止转换

    (4)parseInt()解析八进制字符串,ECMAScript3和5存在分歧,ECAMScript3会将八进制转换为十进制,ECMAScript5则会认为前导的0无效,直接得到十进制数值。所以为了消除以上困惑,parseInt()提供了第二个参数(转换时使用的基数,即多少进制),如parseInt('070', 8) //按八进制解析

    (5)parseFloat()始终都会忽略前导的0,parseFloat()只解析十进制,解析十六进制字符串时会返回0,如果字符串包含的是可解析为整数的数,parseFloat()会返回整数,如parseFloat('1234abc') //1234  parseFloat('3.125e7') //31250000

  3、把一个值转换为字符串的方法有toString()和String(),null和undefined没有toString()方法,String()可以将任意数据类型转换为字符串,还可以用 + ""的方法转换字符串

  4、如果不给构造函数传递参数,则可以省略括号 var o = new Object //有效但不推荐

  5、对非数值应用一元加(+)或一元减(-)操作符时会调用Number()转型函数对值进行转换

  6、可以用'!!'来模拟Boolean()函数转换布尔值

  7、switch语句中case的值不一定是常量,可以是变量或表达式

  8、函数不介意传进多少参数,因为js中的参数在内部是用一个数组表示的,函数接受到的始终是这个数组,不关心数组中有哪些参数。在函数体内可以用arguments对象来访问这个参数数组。js函数的一个重要特点:命名的参数只提供便利,但不是必须的。arguments对象可以与命名参数一起使用,并且它的值与命名参数的值保持同步(但它们的内存空间是独立的),如果只传入一个参数,那么arguments[1]设置的值不会反映到命名参数中,因为argumens对象的长度是由传入的参数个数决定的,而不是命名参数的个数决定的。没有传递值的命名参数被赋予undefined

 

第四章 变量、作用域和内存问题

  1、把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样,基本类型值的传递如同基本类型变量的复制一样,引用类型值的传递如同引用类型变量的复制一样。就是基本类型传递值的是值本身,引用类型传递的值是地址(指针)

  2、复制保存着对象的某个变量(引用类型)时,操作的是对象的引用。但在为对象添加属性时,操作的是实际的对象(内存空间)

  3、typeof用于检测基本数据类型,instanceof检测引用数据类型

标签:转换,变量,JavaScript,字符串,parseFloat,参数,parseInt,程序设计,重读
来源: https://www.cnblogs.com/ruoshuisanqian/p/10350745.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有