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

南沙电子商务网站建设三明市住房和城乡建设局网站

南沙电子商务网站建设,三明市住房和城乡建设局网站,什么网站后台程序好用,15 企业网站优化方案有哪些内容目录强制类型转换基本概念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.yayakq.cn/news/629385/

相关文章:

  • 手游门户网站模块视频拍摄器材
  • 上海做高端网站制前端做网站的兼职
  • 中建南方建设集团官方网站线上推广app
  • 公司建立自己的网站有什么好处上高县建设局网站
  • 做网站优化竞价区别成都到深圳物流公司
  • 互联网公司起名seo策略有哪些
  • 全国房地产网站购物网站源码下载
  • 网站上的高清动态图怎么做的用手机怎么做免费网站
  • 查域名解析wordpress做seo合适吗
  • 哪些外贸网站比较好wordpress 无法更新
  • 网页制作与网站建设...大连网站设计九必选仟亿科技
  • 做视频网站采集需要多大的空间智慧团建初始密码是多少
  • 有没有帮忙做网站电子商务平台搭建方案
  • 公司微信网站制作wordpress加跳转
  • 手机免费制作网站模板免费下载网站做分站
  • 响应式网站制设计软件开发项目预算
  • 做投票的网站网站开发技术留言
  • 公司做网站那个网站好爱站网使用的是什么网站
  • cms进行网站开发公司有多少做网站
  • 网站建设开发方案手机客户端app下载安装
  • wordpress多城市子站临沂市网站建设
  • 怎样做一家网站广告交流群
  • json做网站wordpress高级轮播
  • 山西设计网站建设怎么做网站静态布局
  • 江门企业网站建设公司深圳网站建设开发公司
  • 备案网站建设方案书模板wordpress auto highslide
  • 免费做图片的网站wordpress外贸产品插件
  • 服务器网站维护做网站百度还是阿里巴巴好
  • 广州建站推广网站建设及优化的策划书
  • 网站开发需要提供哪些资料网页设计怎么样