简单只和复杂值的区别
1.简单值
简单值表示JS中可用的数据或信息的最底层简单形式。
注:简单之不可被细化。
也就是说,数字是数字,字符是字符,布尔值是true或false,null和undefined就是null和undefined。这些值本身很简单,不能够再进行拆分。由于简单值的数据大小是固定的,所以简单值的数据是存储与内存中的栈区里面的。
例:
let num = 10;
let bol = true;
let myNull = null;
let undef = undefined;
2.复杂值
在JS中,对象就是一个复杂值。因为对象可以想下拆分,拆分成多个简单值或者复杂值。复杂值在内存中的大小是未知的,因为复杂值可以包含任何值,而不是一个特定的已知值。所以复杂值的数据都是存储于堆区里面的。
比较
例:
let a = 10;
let b = 10;
let c = new Number(10);
let d = c;
console.log(a === b);//true
console.log(a === c);//false
console.log(a == c);//true
d = 10;
console.log(d == c);//true
console.log(d === c);//false
===为全等
!==不全等
==相等
!=不等
>大于
<小于
>=大于等于
<=小于等于
注:大于等于/小于等于中“=”要在大/小符号后面!
类型转换
1.隐形转换
类型 转换前 转换后
number 4 4
string ‘1’ 1
string ‘abc’ NaN
string ‘’ 0
boolean true 1
boolean false 0
undefined undefined NaN
null null 0
注:转换字符串使用“+”号时,会自动转换为字符串
注2:转换为布尔值,undefined,null,"",0,NaN转为false,其余转为true
2.强制转换
转换为数值number(),parseInt(),parseFloat()转换函数:
(1)转换字符串:a=""+数据
(2)转换布尔:!书籍类型
(3)转换数值:数据类型*或/1
运算符
算数运算符
+,-,*,/,**(乘方),%(余数,小学知识)
注:可以给元素进行赋值然后运算
逻辑运算符
1.非
就是取反,非真即假,非假即真
如果操作数是一个一个对象,返回false
如果操作数是一个一个空字符串,返回true
如果操作数是一个一个非空字符串,返回false
如果操作数是数值0,返回true
如果操作数是任意非0数值(包括Infinity),返回false
如果操作数是null,返回true
如果操作数是NaN,返回true
如果操作数是undefined,返回true
2.与(且)
作用两个到多个值,只有所有操作数为真,才为true
3.或
作用两个到多个值,有一个为真,就为真。
条件语句
含义:主要是给定一个判断条件,在程序执行过程中判断该条件是否成立,然后根据判断结果来执行不同的操作,从而改变代码的执行顺序,实现更多功能。
1.单分支语句
单分支语句由一个if组成,条件成立,就进行代码块开始执行语句。
例:
if(条件){
//条件为真时执行的代码
}
2.双分支语句
有两个分支线,如果if不成立,就会跳到else语句中。
例:
if(条件){
//条件为真时执行的代码
}else{
//条件为假时执行的代码
}
3.三目运算符
if...else语句的一个缩写方法,就是用三目运算符?:
语法:条件?(条件为真时执行的代码):(条件为假时执行的代码)
例:
let age = 16;
let result = age>=18 ? "成年" : "未成年";
console.log(result);//未成年
多分支语句
多个if...else语句可以组合在一起,形成逻辑决策树
例:
if(条件){
//执行语句
}else if(条件){
//执行语句
}else{
//执行语句
}
注:多分支语句只执行其中一个。
2.switch语句
有一种比多分支语句结构更加清晰的语句结构,就是<br>switch
例:
switch(条件){
case 1:
//执行语句;
break;
case 2:
//执行语句;
break;
case 3:
//执行语句;
break;
default:
//执行语句;
}
注:break=用于调出某个case,不写break的话,进入cses后会继续进入后面的caes
注2:default=用于书写默认的条件,如果前面都不满足的话,就进入到default语句

JS初始的更多相关文章

  1. vue.js初始学习笔记&vue-cli

    笔记一下: vue.js 安装,参考: http://www.cnblogs.com/wisewrong/p/6255817.html (vue-cli) http://www.cnblogs.com ...

  2. 001——vue.js初始安装:

    windows下安装: 1.https://nodejs.org/en/  下载安装node.js. 在cmd窗口输入node -v检查node是否安装成功. npm也随着node安装了:npm -v ...

  3. 表格数据js初始绑定

    html调用js文件,js初始化时发送Ajax请求,获取页面数据将其写入在html页面上展示 html <div class="card-body"> <!-- ...

  4. js插件---画图软件wePaint如何使用(插入背景图片,保存图片,上传图片)

    js插件---画图软件wePaint如何使用(插入背景图片,保存图片,上传图片) 一.总结 一句话总结:万能的wPaint方法,通过不同的参数执行不同的操作.比如清空画布参数传"clear& ...

  5. 手写 Vue2 系列 之 初始渲染

    前言 上一篇文章 手写 Vue2 系列 之 编译器 中完成了从模版字符串到 render 函数的工作.当我们得到 render 函数之后,接下来就该进入到真正的挂载阶段了: 挂载 -> 实例化渲 ...

  6. Blazor和Vue对比学习(知识点杂锦3.04):Blazor中C#和JS互操作(超长文)

    C#和JS互操作的基本语法是比较简单的,但小知识点特别多,同时,受应用加载顺序.组件生命周期以及参数类型的影响,会有比较多坑,需要耐心的学习.在C#中调用JS的场景会比较多,特别是在WASM模式下,由 ...

  7. 前端工程师如何快速的开发一个微信JSSDK应用

    亲们,订阅号出来已经很久了,作为一个前端工程师或者全栈工程师,你是不是错过了什么?大概许多攻城狮同砚还没有反应过来订阅号怎么回事,就马上要被微信的应用号秀一脸了.在应用号还没有正式出来之前,我们赶紧一 ...

  8. web 前端常用组件【04】Datetimepicker 和 Lodop

    web项目中日期选择器和打印这两个功能是非常常见,将使用过的日期和打印控件,在这里总结归纳,为方便后面使用. 1.Datetimepicker a.官方API:http://www.bootcss.c ...

  9. h5 canvas 图片上传操作

    最近写的小 demo,使用的是h5的 canvas来对图片进行放大,移动,剪裁等等这是最原始的代码,比较接近我的思路,后续会再对格式和结构进行优化 html: <pre name="c ...

随机推荐

  1. Android框架Volley之:利用Imageloader和NetWorkImageView加载图片

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  2. STM32 IAP 升级功能

    IAP In Application Programming 可通过USB,CAN,UART,I2C,SPI等接口实现 IAP流程 Bootloader程序:接收升级程序,更新到flash指定地址:跳 ...

  3. Java实现单链表反转操作

    单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...

  4. SparkSql 整合 Hive

    SparkSql整合Hive 需要Hive的元数据,hive的元数据存储在Mysql里,sparkSql替换了yarn,不需要启动yarn,需要启动hdfs 首先你得有hive,然后你得有spark, ...

  5. 如何下载Youtube上的视频, 字幕, MP3等资源, 方法简单直接!

    Youtube不用多说了吧,秒杀国内一众视频平台,没有之一, 既然关注Youtube说明大家对Youtube都是认同的.不用说4K,8K视频,比起国内一些伪4K, 真的良心, 就连广告也是5秒跳过, ...

  6. 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题

    2==解决vue2.0里面控制台包的一些语法错误. https://www.jianshu.com/p/5e0a1541418b 在build==>webpack.base.conf.j下注释掉 ...

  7. jQuery中的CSS(四)

    1. css(name|pro|[,val|fn]), 访问匹配元素的样式属性 jQuery 1.8中,当你使用CSS属性在css()或animate()中,我们将根据浏览器自动加上前缀(在适当的时候 ...

  8. Centos7防火墙添加端口

    添加 firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效) 重新载入 fire ...

  9. ant design pro解决初始加载,有顺序的请求/请求顺序报错问题/登录后再加载其他数据/异步的顺序问题/偷跑

    方法是:如在Authorized.jsx中解决,当未登录成功(包括登录失败和登录验证中),就显示loading,否则继续 加载渲染children 一个三目运算或者if分支就可以解决,但是要写到最先加 ...

  10. 全面理解UE4委托

    UE4中的delegate(委托)常用于解耦不同对象之间的关联:委托的触发者不与监听者有直接关联,两者通过委托对象间接地建立联系 监听者通过将响应函数绑定到委托上,使得委托触发时立即收到通知,并进行相 ...