《JavaScript》高级程序设计---第3章

3.基本概念

  1. 松散类型:所谓松散类型就是可以用来保存任何类型的数据。
  2. 给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。
  3. Object本质上由一组无序的名值对组成。
  4. 未经初始化的默认值就会取得undefined值。
  5. True和False都不是Boolean值,只是标识符。
  6. 如果小数点后面没有跟任何数字,那么这个数值就可以作为整数值来保存,因为浮点数值需要的内存空间是保存整数值的两倍。
  7. NaN与任何值都不相等,包括NaN本身。
  8. 把非数值转化为数值的3个函数:Number()、paeseInt()和parseFloat()。
  9. ECMAScript中的对象其实就是一组数据和功能的集合。
  10. Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
  11. Object的每个实例都具有下列属性和方法:
constructor保存着用于创建当前对象的函数。
hasOwnProperty用于检查给定的属性在当前对象实例中是否存在
isPrototypeof(object)用于检查传入的对象是否是当前对象的原型
propertyIsEnumerable(propertyName)用于检查给定的属性是否能够使用for-in语句来枚举
toLocaleString()返回对象的字符串表示,该字符串与执行环境的地区相对应
toString()返回对象的字符串表示
valueOf()返回对象的字符串、数值或布尔值表示
  1. 从技术角度讲,ECMA-262中对象的行为不一定适用于JavaScript中的其他对象。浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主的对象,因为它们是由宿主实现提供和定义的。ECMA-262不负责定义宿主对象,因此宿主对象可能会也可能不会继承object。
  2. 一元操作符:只能操作一个值的操作符叫一元操作符。
  3. 位操作符:位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值。ECMAScript中的所有数值都以IEEE-765 64位格式存储,但位操作符并不直接操作64位的值。而是先将64位的值转换成32位的整数,然后执行操作,最好再将结果转换回64位。对于开发人员来说,由于64位存储格式是透明的,因此整个过程就像是只存在32位的整数一样。
  4. 求-18的二进制码的过程:
    (1)求18的二进制码即:
    0000 0000 0000 0000 0000 0000 0001 0010
    (2) 对该二进制码进行按位取反
    1111 1111 1111 1111 1111 1111 1110 1101
    (3)二进制反码加1
    1111 1111 1111 1111 1111 1111 1110 1110
  5. ECMAScript会尽力向我们隐藏所有的信息,即:在以二进制字符串形式输出一个负数时,我们看到的只是这个负数绝对值的二进制码前面加上了一个负号。
  6. 按位非(NOT):按位非操作符由一个波浪线(~)表示,执行按位非得结果就是返回数值得反码。按位非是ECMAScript操作符中少数几个与二进制计算有关得操作符之一。
  7. 按位与(&)只在两个数值的对应位都是1时才返回1,任何一位是0,结果都是0。
  8. 按位或(|)只有在两个数值的对应位都是0时才返回0,任何1位是1,结果都是1。
  9. 按位异或(^)只有在两个数值的对应位都不相同时才返回1,否则返回0。
  10. 左移(<<),这个操作符会将数值的所有位向左移动指定的位数。
  11. 有符号的右移(>>),这个操作符会将数值向右移动,但保留符号位。
  12. 无符号的右移(>>>),这个操作符会将数值的所有32位都向右移动。
  13. 不能在逻辑与操作中使用未定义的值。
  14. 我们可以利用逻辑或的这一行来避免位变量赋null或undefined值。
  15. 如果参与乘性计算的某个操作数不是数值,后台会先使用Number()转型函数将其转换为数值。也就是说,空字符串将被当作0,布尔值true将被当作1。
  16. var result2=5+“5” ; //“55”
  17. var result3=NaN-1; //NaN
  18. ECMAScript对象的属性都没有顺序。因此,通过for-in循环输出的属性名的顺序时不可测的。具体来讲,所有属性都会被返回一次,但返回的先后次序可能会因浏览器而异。
  19. ECMAScript的switch语句中可使用任何数据类型,无论是字符串,还是对象都没有问题。其次,每个case的值不一定是常量,可以是变量,甚至是表达式。
  20. ECMAScript中,switch语句在比较值时使用的时全等操作符,因此不会发生类型转换(例如,字符串"10"不等于数值10)。
  21. ECMAScript函数的参数与大多数其他语言中函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接受两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终是这个数组,而不关心数组中包含哪些参数。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
  22. ECMAScript函数的一个重要特点:命名的参数只提供便利,但不是必需的。
  23. arguments的值永远与对应命名参数的值保持同步。例如:传进来的第二个参数num2=10,现在利用arguments[1]=9后,num2=9。不过,这并不是说读取这两个值会访问相同的内存空间,它们的内存空间是独立的,但它们的值会同步。
  24. 没有传递值得命名参数将自动被赋予undefined值,和定义了变量但没有初始化一样。
  25. ECMAScript函数不能像传统意义上那样实现重载。如果定义了两个名字相同得函数,则该名字只属于后定义得函数。
  26. JavaScript得核心语言特性在ECMA-262中是以名为ECMAScript的伪语言的形式来定义的。ECMAScript中包含了所有基本的语法、操作符、数据类型以及完成基本的计算任务所必需的对象,但没有对取得输入和产生输出的机制作出规定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019-06-13 Java学习日记之MySql

数据库概述&#xff1a; 1、什么是数据库&#xff0c;数据库有什么作用&#xff1f; 数据库就是存储数据的仓库&#xff0c;气本质是一个文件系统&#xff0c;数据按照特定的格式将数据存储起来&#xff0c;用户可以对数据库中的数据进行增加&#xff0c;修改&#xff0c;删除及…

jquery 文件预览功能

$(function() {$("#pic").click(function () {$("#upload").click(); //隐藏了input:file样式后&#xff0c;点击头像就可以本地上传$("#upload").on("change",function(){var objUrl getObjectURL(this.files[0]) ; //获取图片的路径…

笔试小结---线程、进程

多进程:进程是资源分配的基本单位&#xff0c;它是程序执行时的一个实例。程序运行时&#xff0c;系统就会创建一个进程&#xff0c;并为它分配资源&#xff0c;然后把该进程放入进程就绪队列&#xff0c;进程调度器选中它的时候就会为它分配CPU时间&#xff0c;程序开始真正运…

Spring security (一)架构框架-Component、Service、Filter分析

想要深入spring security的authentication &#xff08;身份验证&#xff09;和access-control&#xff08;访问权限控制&#xff09;工作流程&#xff0c;必须清楚spring security的主要技术点包括关键接口、类以及抽象类如何协同工作进行authentication 和access-control的实…

windows下手动安装composer

1.下载compser.phar 地址 https://getcomposer.org/download/ 2.新建composer.bat 文件&#xff0c;写入“php "%~dp0composer.phar" %*” 3.把composer.bat composer.phar 两个文件放入 4.向环境变量里面写人“;D:\phpStudy\php\php-5.4.45;D:\phpStudy\php\php-5…

写更漂亮的javascript

用更合理的方式写 JavaScript 目录 声明变量对象数组字符串函数箭头函数模块迭代器和生成器属性变量提升比较运算符和等号代码块注释空白逗号分号类型转换命名规则声明变量 1.1 使用let和const代替var 不会变的声明用const//bad var $cat $(.cat)//good const $cat $(.cat)…

笔试小结---树

平衡二叉树(Balanced Binary Tree):又被称为AVL树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1&#xff0c;并且左右两个子树都是一棵平衡二叉树。 二叉搜索树&#xff1a;是一颗二叉树&#xff0c;可能为空;若非空,则满足以下特征: 1.每个元素有一…

iOS 快速实现分页界面的搭建

级别&#xff1a; ★★☆☆☆ 标签&#xff1a;「iOS」「分页」「QiPageMenuView」 作者&#xff1a; 沐灵洛 审校&#xff1a; QiShare团队 iOS 快速实现分页界面的搭建 项目中我们经常会遇到滚动分页的设计效果&#xff0c;被用来对不同数据界面的展示进行分类。我们先可以来…

java中String的常用方法

java中String的常用方法 转自&#xff1a;http://archer-zhou.iteye.com/blog/443864 java中String的常用方法1、length() 字符串的长度例&#xff1a;char chars[]{a,b.c};String snew String(chars);int lens.length();2、charAt() 截取一个字符例&#xff1a;char ch;ch&quo…

笔试小结---非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥和私有密钥是一对,如果公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥进行加密,那么只有用对应的公开密钥才能解密. 非对称加密算法的保密性比较好,它消除了最终用户交换…

登录令牌 Token 介绍

Token值介绍 token 值: 登录令牌.利用 token 值来判断用户的登录状态.类似于 MD5 加密之后的长字符串. 用户登录成功之后,在后端(服务器端)会根据用户信息生成一个唯一的值.这个值就是 token 值. 基本使用: 在服务器端(数据库)会保存这个 token 值,以后利用这个 token 值来检索…

java-number

通常&#xff0c;当我使用number类型的时候&#xff0c;我们可以使用原始数据类型例如byte&#xff0c;int,long,double等 int i 5000; float b 13.65; double m 0xaf; 所有包装类&#xff08;整型&#xff0c;长型&#xff0c;字节型&#xff0c;双精度型&#xff0c;浮点型&a…

您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。...

您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本&#xff0c;如果已安装则启用它。 https://www.java.com/zh_CN/download/faq/remove_olderversions.xml https://jingyan.baidu.com/article/6d704a13…

指令定义

restict&#xff1a;它告诉AngularJS这个指令在DOM中可以以何种形式被声明。 E(元素&#xff09; <my-directive> </mydirective>A(属性) <div my-directive“expression”> </div>C(类名) <div class“my-directive:expression;”> </div>…

MyBatis学习总结(9)——使用MyBatis Generator自动创建代码

2019独角兽企业重金招聘Python工程师标准>>> 由于MyBatis属于一种半自动的ORM框架&#xff0c;所以主要的工作就是配置Mapping映射文件&#xff0c;但是由于手写映射文件很容易出错&#xff0c;所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这…

[BZOJ2125]最短路(圆方树DP)

题意&#xff1a;仙人掌图最短路。 算法&#xff1a;圆方树DP&#xff0c;$O(n\log nQ\log n)$ 首先建出仙人掌圆方树&#xff08;与点双圆方树的区别在于直接连割边&#xff0c;也就是存在圆圆边&#xff09;&#xff0c;然后考虑点u-v的最短路径&#xff0c;显然就是&#xf…

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结 教材学习内容总结 1、二叉查找树的定义、性质2、向二叉查找树中添加元素的方法3、在二叉查找树中删除元素的方法4、旋转的定义、方法、意义 教材学习中的问题和解决过程问题1&#xff1a;我在17章中看到这么一句话&a…

ES6模块的转码

浏览器目前还不支持ES6模块,为了实现立刻使用,我们可以将其转为ES5的写法.除了Babel可以用来转码,还有以下两个方法也可以用来转码: ES6 moudule transpilerSystemJS ES6 moudule transpiler是square公司开源的一个转码器,可以将ES6模块转为CommonJS模块或AMD模块,从而在浏览器…

Java基础学习总结(22)——异常处理

2019独角兽企业重金招聘Python工程师标准>>> 一、异常的概念 异常指的是运行期出现的错误&#xff0c;也就是当程序开始执行以后执行期出现的错误。出现错误时观察错误的名字和行号最为重要。 1 package cn.javastudy.summary;2 3 public class TestEx{4 5 …

XAML中格式化日期

要求被格式化数据的类型是DateTime StringFormatyyyy-MM-dd StringFormat{}{0:yyyy-MM-dd}转载于:https://www.cnblogs.com/changbaishan/p/9144584.html