你不知道的JavaScript(二)

第三章 原生函数

JS有很多原生函数,为基本的数据类型值提供了封装对象,String,Number,Boolean等。我们可以通过{}.call.toString()来查看所有typeof返回object的对象的内置属性[[class]],这个属性无法直接访问。我们基本类型调用的方法和属性都是通过封装对象去访问的,例如var a = “abc”; a.length//3,但是有一点需要注意的是new Boolean(false)//true,为false封装对象时,它是一个真值(即总是返回true),平时在用到封装对象中的基本类型值的时候,JS会发生隐式拆封。

第四章 强制类型转换

强制类型转换是JS里难以掌握的,但是在实际应用中它又是很有用处的,我们十分有必要去深入理解和合理运用它。类型转换有显式和隐式之分,后者就是强制类型转换,例如var a = 42; var b = a + “”;//“42”,这里数字a被转换为了字符串b。

非字符串转换为字符串,在没有自行定义的情况下,普通对象调用toString方法返回内部的[[Class]]值,JSON.Stringfy函数在将对象序列化为字符串时,如果定义了toJSON方法就会首先调用该方法,用返回值进行序列化,在数组中如果遇到undefined,空function,那么会在对应位置返回null以保证单元位置不变。

在将非数字值转换为数字时就会进行ToNumber操作,false转换为0,true转换为1,undefined转换为NaN,null转换为0,对于对象来说,会首先调用valueOf,没有就调用toString来返回基本类型,然后再强制转换为数字值,如果均不返回数字,则会报错。 转换为布尔值时,从逻辑上说,出现在假值列表上的才为假值,+0,-0,infinite,null,undefined,””,NaN等,要特别注意的是这些假值封装的对象是真值(所有对象都是真值),除了””以外的字符串也都是真值。

~这个符号能有奇妙的功能,~X可以视为-(X+1)。通常用+X来把X转换为数字,用X+””来将X转换为字符串,用X|0来将X取整。

对于+运算符,先是调用toString进行字符串拼接,如果不行就用valueOf转换为数字,进行加法操作。

对于比较运算,数字和字符串比较先转化为数字,如果有布尔类型就将布尔类型转换为数字,字符串或数字和对象比较,先把对象用toString,valueOf转换为字符串或者数字。

转载于:https://juejin.im/post/5aa800626fb9a028d375166d

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

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

相关文章

[转]guava快速入门

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I…

数据库编程1 Oracle 过滤 函数 分组 外连接 自连接

【本文谢绝转载原文来自http://990487026.blog.51cto.com】<大纲>数据库编程1 Oracle 过滤 函数 分组 外连接 自连接本文实验基于的数据表:winsows安装好Oracle11g之后,开始实验SQLplus 登陆 ORaclesqlplus 退出的方式查看用户之下有什么表查看表的所有记录&#xff0c;不…

【.NET 6】开发minimal api以及依赖注入的实现和代码演示

前言&#xff1a;.net 6 LTS版本发布已经有一段时间了。此处做一个关于使用.net 6 开发精简版webapi&#xff08;minimal api&#xff09;的入门教程演示。1、新建一个项目。此处就命名为 SomeExample:2、选择 .net6版本&#xff0c;并且此处先去掉HTTPS配置以及去掉使用控制器…

(转载)VS2010/MFC编程入门之四(MFC应用程序框架分析)

上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构&#xff0c;可能大家对工程的运行原理还是很模糊&#xff0c;理不出头绪&#xff0c;毕竟跟C编程入门系列中的例程差别太大。这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程。 一.SDK应用程序与MFC应用程序运行过…

个人博客开发-开篇

迈出第一步&#xff1a; 很久以前就有这个想法&#xff0c;自己动手开发一套个人博客系统&#xff0c;终于&#xff0c;现在开始迈出了第一步。做这件事一点是做一个有个人风格的博客系统&#xff0c;第二点是对做这件事所使用的技术栈进行学习&#xff0c;所谓最好的学习就是实…

2022年中国中小学教育信息化行业研究报告

教育信息化丨研究报告 核心摘要&#xff1a; 背景篇 目前&#xff0c;我国中小学教育主要呈现信息时代教育的特征&#xff0c;智能时代教育特征初露端倪&#xff1b;中小学教育信息化正从量变迈向质变&#xff0c;创新引领与生态变革成为行业纵深的主旋律&#xff1b; 2021年…

使用curl指令发起websocket请求

昨日的文章没指出websocket请求协商切换的精髓&#xff0c;删除重发。前文相关&#xff1a;• .NET WebSockets 核心原理初体验[1]• SignalR 从开发到生产部署避坑指南[2]tag&#xff1a;浏览器--->nginx--> server其中提到nginx默认不会为客户端转发Upgrade、Connectio…

Yii 2 的安装 之 踩坑历程

由于刚接触yii2 ,决定先装个试试&#xff1b;可是这一路安装差点整吐血&#xff0c;可能还是水平有限吧&#xff0c; 但还是想把这个过程分享出来&#xff0c;让遇到同样问题的同学有个小小的参考&#xff0c;好了言归正传&#xff01;&#xff01; <(~.~)> 下面是安装流…

设计模式之代理模式(上) 静态代理与JDK动态代理

2019独角兽企业重金招聘Python工程师标准>>> 代理模式 给某一个对象提供一个代理&#xff0c;并由代理对象控制对原对象的引用。静态代理 静态代理是由我们编写好的类&#xff0c;在程序运行之前就已经编译好的的类&#xff0c;此时就叫静态代理。 说理论还是比较懵…

mysql 分页查询

使用limit函数 limit关键字的用法&#xff1a; LIMIT [offset,] rows offset指定要返回的第一行的偏移量&#xff0c;rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。转载于:https://www.cnblogs.com/xping/p/6703986.html

WPF 实现更换主题色

WPF 实现更换主题色WPF 使用 WPFDevelopers.Minimal 如何更换主题色作者&#xff1a;WPFDevelopersOrg原文链接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal框架使用大于等于.NET40&#xff1b;Visual Studio 2022;项目使用 MIT 开源许可协议&a…

vue3与vue2的区别

先来说说当下市场开发使用的问题&#xff0c;目前2021年使用vue3开发的企业还是少&#xff0c;基本上都还是以vue2的形式进行开发&#xff0c;vue3的开发模式跟react很像&#xff0c;这时候有人就会想那我学vue3有用么&#xff0c;淦&#xff0c;他喵的&#xff0c;先别激动&am…

Spring Data REST API集成Springfox、Swagger

原文: Documenting a Spring Data REST API with Springfox and Swagger 使用Spring Date REST&#xff0c;你可以迅速为Spring Date repositories的创建REST API&#xff0c;并提供CRUD和更多功能。然而&#xff0c;在严谨的API开发过成功&#xff0c;您还希望拥有自动生成的最…

【系统设计】S3 对象存储

在本文中&#xff0c;我们设计了一个类似于 Amazon Simple Storage Service (S3) 的对象存储服务。S3 是 Amazon Web Services (AWS) 提供的一项服务&#xff0c; 它通过基于 RESTful API 的接口提供对象存储。根据亚马逊的报告&#xff0c;到 2021 年&#xff0c;有超过 100 万…

转: telnet命令学习

1.每天一个linux命令&#xff08;58&#xff09;&#xff1a;telnet命令 转自&#xff1a; http://www.cnblogs.com/peida/archive/2013/03/13/2956992.html telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员&a…

禅道、码云、coding、redmine、jira、teambition几大敏捷开发项目管理系统试用对比体验

作为一个软件公司的管理人员&#xff0c;在项目和人员多起来后&#xff0c;就需要通过系统来对项目和人员进行管理。 我们是典型的软件外包公司&#xff0c;专为客户定制软件&#xff0c;所以我们的业务都是项目型的。因此&#xff0c;在管理模式上&#xff0c;我们就要用所谓…

Dubbo中的SPI机制

Dubbo中的SPI机制 概述 Service Provider Interface 即 SPI&#xff0c;是JDK内置的一种服务提供发现机制&#xff0c;可以用来启用框架扩展和替换组件。可以让不同的厂商针对统一接口编写不同的实现 SPI实际上是“接口策略模式配置文件”实现的动态加载机制。在系统设计中&…

JWT:拥有我,即拥有权力

Hi&#xff0c;这里是桑小榆。上篇文章中&#xff0c;我们一起探讨了 OAuth 协议的原理以及授权认证流程&#xff0c;本次我们一起探讨 jwt 令牌作为授权协议的传输介质。OAuth协议规范了几个参与角色的授权标准&#xff0c;安全可控的授予第三方应用&#xff0c;第三方应用获取…

双十一到来之前,阿里AI设计师“鲁班”1天能做4000万张海报

相比较去年&#xff0c;“鲁班”的设计技艺有所提升。 人工智能很大程度上便利了我们的生活&#xff0c;现在他们甚至还能取代了一些设计师的工作&#xff0c;在双十一正式到来之前&#xff0c;淘宝的宣传已经铺天盖地&#xff0c;然而很多人都没想到&#xff0c;我们打开淘宝…