当前位置: 首页 > news >正文

南昌响应式网站建设百度推广开户公司

南昌响应式网站建设,百度推广开户公司,西宁专业网站建设公司,网站制作的公司目录强制类型转换基本概念JSONboolean强转归纳其他知识点被诟病的安全使用隐式强转法则抽象关系比较语法表达式变动强制类型转换 基本概念 类型转换发生在静态类型语言的编译阶段; 强制类型转换则发生在动态类型语言的运行时(runtime) JSON…

目录

      • 强制类型转换
        • 基本概念
        • JSON
        • boolean
        • 强转归纳
        • 其他知识点
        • 被诟病的==
        • 安全使用隐式强转法则
        • 抽象关系比较
      • 语法
        • 表达式变动

强制类型转换

基本概念

类型转换发生在静态类型语言的编译阶段;
强制类型转换则发生在动态类型语言的运行时(runtime)


JSON

JSON.stringify 用来把 JSON 文件字符串化,调用方法 tostring
字符串化的结果永远是字符串,所以会出现下面的双双引号结果

JSON.stringify(42); // 42
JSON.stringify("42"); // ""42""

JSON.stringify 在对象中遇到 undefined、function 和 symbol 时会自动将其忽略,在数组中则会返回 null

toJSON()指的是:“返回一个能够被字符串化的安全的 JSON 值”,而不是“返回一个 JSON 字符串”


可以向 JSON.stringify 传递一个 replacer 参数,表示仅转换每个属性;
比如下方代码表示仅转换对象 a 中的属性 b,所以 c 没有字符串化

var a = {b: 42,c: "42",
};
JSON.stringify(a, ["b"]); // "{"b":42}"

JSON.stringify 有第三个参数 space,表示指定输出的缩进格式
JSON.stringify(a,null,3)


boolean

对于所有真值为 true,而所有假值为 false

所有字符串都是真值,除了空字符串是假值外

显式强转为布尔类型最常用的是两个感叹号!!

var a = "";
!!a; // false

强转归纳

对于显式强转,比如下方字符串转数值,以及数值转字符串
这里不适用 new,并不创建封装对象

var num1 = 100;
var num2 = String(num1);var str1 = "1.11";
var str2 = Number(str1);

单个加号运算符当做一元运算符,也是显式强转运算,可以把字符串类型数据转换成数值类型
var a = +"100"

js 中的构造函数没有参数时可以不用带()
var time = new Data().geTime();


其他知识点

~x 等同于 -(x+1)
~42 = -(42+1) = -43

抽象渗漏:指代码中暴露了底层的实现细节

很多程序员喜欢用~~代替 Math.floor(..)进行向下取整;
而事实上~~仅适用于 32 位数字
~~-49.6 == -49


被诟病的==

==负责执行隐式强转

当使用&&或者||连接两个包含==的比较式时,二者是先后执行而非同时执行的!
如下会先判断 a==10 之后才判断 a==11
if(a==10 && a==11){}


千万不要使用==进行假值相等比较,会出现你意想不到的情况
下面例举了四种"假阳"的情况

"0" == false; // true
false == 0; // true
false == ""; // true
"" == 0; // true42 == "42"; // true
"foo" == ["foo"]; // true

安全使用隐式强转法则

如果两边的值中有 true 或者 false,千万不要使用==
如果两边的值中有[]、""或者 0,尽量不要使用==

因为 typeof 总是返回七种基本类型之一,故在 typeof 管理下的==强转是被允许的
typeof x == "function"

一般的,我们为了更安全,抛弃==改而使用===


抽象关系比较

抽象关系比较即针对诸如x<y这种格式的代码中隐式强转规则
若双方中有一个是非字符串,则均转成数字后执行数字大小比较
若双方均为字符串,则按照字母顺序比较

var n1 = [42];
var n2 = ["43"];
a < b; // truevar n3 = ["42"];
var n4 = ["042"];
a < b; // false

语法

表达式变动

事实上,ES5 规定变量声明实际上是有返回值的,只不过被算法屏蔽掉了,返回结果为空

目前可以使用两种方式将获得语句的结果值赋值给另一个变量
直接 eval 填入代码,或者塞入 ES7 新增的 do 代码块

var a, b;
a = eval("if(true){b=100;}");a = do {if (true) {b = 100;}
};

标签语句:可以使用 goto 回到该标签的位置继续执行代码

function foo() {bar: {console.log("hello");break bar;}console.log("word");
}
foo(); // hello world

http://www.dinnco.com/news/77333.html

相关文章:

  • 做怎样的网站能赚钱网络运营课程培训班
  • 做网站钱百度手机网页
  • 美女做暖网站如何免费制作网站
  • 国际军事新闻在哪看山东seo推广
  • 网站建设与运营未来发展小程序开发流程详细
  • 织梦57网站的友情链接怎么做如何进行关键词优化工作
  • 旅游系统青岛seo整站优化
  • 招商网站建设推广怎么做推广比较成功
  • 网站开发服务商英文外链seo兼职
  • Wordpress+仿站+工具seo标题关键词怎么写
  • 查询备案号怎么查询seo搜索引擎优化软件
  • 网站脑图用什么做网络运营培训班多少钱
  • 无锡哪家公司做网站sem竞价托管多少钱
  • 网站怎么做收入苏州网站制作推广
  • 做网站用百度地图和天地图aso是什么意思
  • 代做计算机毕业设计网站网络营销软文范例500
  • 华强北做电子网站相关搜索优化软件
  • 响应式网站 哪些培训体系
  • 公司注册资金增加怎么办理关键字排名优化工具
  • 广东网站建设制作价格低属于seo网站优化
  • 自己做的动画买给网站外包网络推广公司怎么选
  • 网站创建公司推广普通话的宣传内容
  • 国内ip地址代理免费正规网络公司关键词排名优化
  • 用nas做网站服务器百家号自媒体平台注册
  • net程序员网站开发工程师推广
  • wordpress 同步微信素材广州seo公司品牌
  • 湖南省建设干部学校 网站在什么网站可以免费
  • 做网站要有策划么品牌推广网络公司
  • 推动政务网站建设搜索关键词优化
  • 中小企业怎么优化网站线上营销推广的公司