JS基础——数学运算
文章目录
- JS中的数学运算
- 模板字符串
- 布尔类型
- !的用法
- !=:不等于
- !取反:把!后的字符转化为布尔类型,然后再取反。
- !!在一个布尔类型的基础上取反再取反,相当于转化为布尔类型。
- null和undefined的区别
- 对象数据类型object
- 数据类型的检测及堆栈内存的区别
- 数据类型的检测
- 数据类型typeof
- typeof 局限性
- 基本数据类型与引用数据类型的区别(划重点)
JS中的数学运算
• 加减乘除±*/
• 取余%
1、加号,在JS中既有数学运算,也有字符串拼接的意思(只要加号两边的任意一边出现字符串,则变为字符串拼接)。
如果加号两边有引用数据类型,则先把引用数据类型转为字符串,再做加法。
2、除了加号以外,其余的情况都是数学运算(如果遇到非数字类型,需要基于Number把其强制转换为数字类型,然后在进行运算的)。
模板字符串
项目中经常把一些变量的值拼接到指定的字符串中
ES6中的模板字符串就是为了解决传统字符串拼接中的问题(反引号:TAB上面的撇):
${}中存放变量或者其它的JS表达式即可,很简单的完成字符串拼接
// 完成字符串拼接处理:2020年03月03日 12:00:00let year = '2020';let month = '03';let day = '03';let hours = '12';let minutes = '00';let seconds = '00';
// ES6中的模板字符串就是为了解决传统字符串拼接中的问题(反引号 TAB上面的撇):${}中存放变量或者其它的JS表达式即可,很简单的完成字符串拼接
let result = `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}`;console.log(result);// let str='<div class="box" id="box">';// str+='<h2 class="title">哈哈</h2>';// str+='<ul class="item">';// str+='<li></li>';// // ..../* let str = `<div class="box" id="box"><h2 class="title">哈哈</h2><ul class="item">${[10,20,30].map(item=>{return `<li>${item}</li>`;}).join('')}</ul></div>`;console.log(str); */// 传统的拼接方式,我们需要在字符串中基于 "++" 或者 '++' 的方式把变量拼接到字符串中(这种方式涉及很多恶心的规则,一不留神就容易拼错)// let result = year + "年" + month + "月" + day + "日 " + hours + ":" + minutes + ":" + seconds;// let result = "" + year + "年" + month + "月日 ::";// console.log(result);
布尔类型
只有两个值:true false
Boolean()
把其他数据类型的值转换为布尔类型
只有 0、NaN、空字符串、null、undefined 这五个数据类型转换为布尔类型的false,其余的都会变为true
!的用法
!=:不等于
!取反:把!后的字符转化为布尔类型,然后再取反。
!!在一个布尔类型的基础上取反再取反,相当于转化为布尔类型。
/* 条件判断中,每一个条件最后一定是true/false */// if (1 == 1) {}// if (1) {// //=>写一个值,也是要把这个值转换为布尔,然后校验程序的真假// }// if (3 + '3px') {} //=>3 + '3px' =>'33px' 真// if (3 - '3px') {} //=>3 - '3px' =>NaN 假
null和undefined的区别
null:表示没有对象,即该处不应该有值
undefined表示缺少值,即此处应该有值,但还没定
对象数据类型object
每一个对象都是由零到多组 属性名(key键):属性值(value值) 组成的,或者说有多组键值对组成的,每一组键值对中间用逗号分隔。
var obj={name:’珠峰’;age:8};
属性:描述这个对象特点特点特征的
对象的属性名是字符串或者数字格式的,但最终都会变为字符串,存储的属性值可以是任何的数据类型
对象名.属性名:忽略了属性名的单双引号
对象名[‘属性名’]:不能忽略单双引号
var obj={name:'我亲爱的',age:8,friend:['我爱你','我不爱你'],0:100};
//=>获取某个属性名对应的属性值
obj.name
obj['name']
//=>获取属性名为数字的属性名
//obj.0 语法不支持
obj[0]//obj['0']
//=>如果操作的属性名在对象中不存在,获取的结果是undefined
//=>设置/修改:一个对象的属性名是不能重复的(唯一性),如果之前存在就是修改属性值的操作,反之不存在就是新设置属性的操作
obj.sex='男';
obj['age']=9;
//=>删除
obj.sex=null; 假删除
delete obj.sex; 真删除
数据类型的检测及堆栈内存的区别
数据类型的检测
• typeof:检测数据类型的运算符
• instanceof:检测某个实例是否属于这个类 只适用引用数据类型
• constructor:获取当前实例的构造器
• Object.prototype.toString.call:获取当前实例的所属类信息
数据类型typeof
返回值是一个字符串,字符串中内容是当前变量的数据类型
typeof null ⇒ ‘object’
typeof 实现call的对象 ⇒ ‘function’
typeof 未实现call的对象 ⇒ ‘object’
console.log(typeof str);// “number”
console.log(typeof “188”);// “string”
console.log(typeof true);// “boolean” 布尔类型
console.log(typeof null);// “object” 空对象指针
console.log(typeof undefined);//”undefined”
typeof 局限性
1.typeof null –> “object”:因为null虽然是单独的一个数据类型,但是它原本的意思是空对象指针,
浏览器使用typeof检测的时候会把他按照对象来检查
2.不能够区分对象数据类型下面具体的对象,数组、正则都是object
console.log(typeof {});// “object”
console.log(typeof []);// “object”
console.log(typeof /\d/);// “object”
console.log(typeof function () {});// “function”
以下为各类型详解(正则除外)
基本数据类型与引用数据类型的区别(划重点)
JS 是运行在浏览器中的(内核引擎),浏览器会为JS提供赖以生存的环境(提供给JS代码执行的环境),叫做ECStack(Execution Context Stack 执行环境栈)=>栈内存或者全局作用域 window
var a=12;
var b=a;
b++;
console.log(a);
var n={name:'华为'};
var m=n;
m={name:'北京'};
console.log(n.name);
基本数据类型是按值操作的:在赋值的时候,是直接的把值赋值给变量即可。
引用数据类型是按照空间地址(引用地址)来操作的
var n={name:’华为’};
分三步操作:
1、浏览器首先会开辟一个新的存储空间(堆内存),目的是把对象中需要存储的内容(键值对)分别的存储在这个空间中,为了方便后期找到这个空间,浏览器给空间设定一个16进制的地址
2、创建一个变量n
3、把空间的地址赋值给变量
JS基础——数学运算相关推荐
- js解析数学运算公式
js解析数学运算公式 已上传到npm,NPM包地址:https://www.npmjs.com/package/exec-mathexpress 示例demo //运行democonst execMa ...
- js进行数学运算,加法,减法,乘法,除法
1.简单的数学运算 // 加法 const accAdd = (arg1, arg2) => {var r1, r2, m;try {r1 = arg1.toString().split(&qu ...
- 深度学习(10)TensorFlow基础操作六: 数学运算
深度学习(10)TensorFlow基础操作六: 数学运算 1. Operation type 2. + - * / % // 3. tf.math.log & tf.exp 4. log2, ...
- 零基础学python编程思维---Task2 数学运算、字符串和文本、列表
Task2 数学运算.字符串和文本.列表 一.基础部分 1.实现第一行代码和认识注释 print('hello world') 注释是由# 加相关备注,其目的就是其他开发者能够轻松的了解代码,注释不影 ...
- matlab数学运算规则,matlab数学运算基础
matlab数学运算基础 MATLAB 数学运算基础 1/10 MATLAB 数学运算基础 目录 1 数据表示方法 2 矩阵的赋值 3 向量的赋值 4 用矩阵元素组成新矩阵 附:矩阵赋值中的标点符号 ...
- Python基础教程:对象及数字对象与数学运算
1.什么是对象? Python语言中,所有的 数据 都被称之为 对象.Python代码,就是要 处理各种 对象 ,从而完成具体的任务. # 首行要顶格写,python对大小写敏感print ('hel ...
- numpy 学习汇总18.2 - 数学运算( 基础学习 tcy)
数学运算 2018/6/18 2018/11/29 1.算术运算 # +, - ,*,/,//,%,divmod(),** or pow() # 1)运算符 a=np.arange(1,7).resh ...
- shell脚本基础(环境变量、重定向、数学运算、退出脚本)
一.使用环境变量 1.环境变量 所谓环境变量,就是用来存储有关shell会话和工作环境信息的特性,这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们.这也是存储持久数据 ...
- JAVA基础篇【工具类】MathUtil 数学运算辅助类TG【20130324整理】
数学运算辅助类,希望对大家有所帮助 import java.math.BigDecimal; /** * 数学运算辅助类. * * @author Elfy * @date 2013年03月21日 * ...
最新文章
- Oracle原理: 行级锁和表级锁
- Linux服务器编程之:link()函数,ln命令,symlink,readlink,案例说明
- svg入门经典pdf_机器学习最好的入门课程是什么?
- 编程语言发展史上有哪些趣事?
- win10的一些命令,记一记
- gradle入门教程
- 编译原理 -- 词法分析程序设计
- 【弄nèng - Skywalking】入门篇(一)—— Skywalking安装与使用
- vue引入外部js文件(第三方js工具或者jq库)
- TIOBE 2015年6月编程语言排行榜
- win7字体大小怎么设置_怎么设置 win7系统excel2010定时保存和数据恢复的方案 -win7系统使用教程...
- AUTOSAR开发工具DaVinci Configurator里的Modules
- Unity之三维空间多点箭头导航
- 最近在 vscode 中借助 gcc 编译器来配置 c
- 典型相关分析(附SPSS操作)
- 江西省计算机专业好的二本大学排名,2020江西各大学全国排名,一本,二本大学排名.三本院校排名_一品高考网...
- 安卓代替系统默认电话应用
- R语言--股票数据分析
- 电脑pdf怎么转word文档格式?
- 非递归,不用栈实现二叉树中序遍历