赋值式写法
document.body.innerHTML=''智学无忧''
document.body.innerHTML='智学无忧'------赋值,对象的属性需要赋值。
属性使用=赋值
(3)write和innerHTML
write仅属于document的方法,可以给整个文档中增加内容
innerHTML是所有body内(含body)标签的属性,可以给这些标签内局部增加内容和标签。
变量
ES5 和 ES6
为了可以让所有浏览器都使用js,我们定义了一个标准,
ECMAScript,各大浏览器都必须按照这个标准来渲染页面,
ES5 IE8时代支持的js标准,
2015年正式使用ES6 又称为ES2015。
ES5 之前
javascript为弱类型,不需要定义,随手写,也不需要类型,等号左侧变量名称,右侧值
连等,先赋值给等号最左边的元素,再逐级向右等号赋值有返回值
例:a=3返回值3
代码遵从从左至右的执行方式。
ES5时
ES5 IE8时代支持的js标准,不允许直接使用变量的赋值,
如果不使用var声明,那就这个变量就一定是window的属性
而在函数以外的地方使用var声明也是设置了window的属性
ES6时
2015年正式使用ES6 又称为ES2015,
let 是可以声明变量,定义后可以变化值。
const 为常量,定义后不能被改变。
(1)常量定义时,名称全部大写,并且使用下划线_区分单词
(2)使用常量目的是,不会被别人修改或者变量污染改变
(3)不改变对象的引用地址(有消耗性能)
变量命名规则
1、变量必须驼峰式命名法
2、临时变量必须使用_起头,后面接驼峰式命名,有时候会在函数的参数中使用临时命名
3、变量不可以使用关键词和保留字
4、全局的变量名不能与window下的属性和方法同名
数据类型转换
强制转换和隐式转换
强制转换为===,隐式转换为==
数值转字符串
类型强制转换 Stiring()
隐式转换方式(没有强制转换,根据运算特征自动转换为字符串) a=a+””
隐式转换所使用的转换方法是自动执行String();
. toString()实际上是Object对象的方法,因此,万物皆对象,任何类型都可以调用这个方法
.toFixed(小数点位数) 转换为字符串,并且保留小数点位数,自动四舍五入
.toExponential();
.toPrecision();
数值转布尔值
强制转换Boolean()
除了0以外所有的数值转布尔都是true,0是false
数值转对象
强制转化 Object()
转为数值型对象,数值型对象存储在堆中
字符串转数值
强制转换 Number();有一个非数字即为NaN
NaN 数值类型中的非数值,例:非数值字符串转数值时
parseInt 转换为整数,parseInt(a,2)字符串转换为2进制,截止到第一个非数字
parseFloat 转换为浮点数,parseFloat 转换为浮点数
parseFloat 转换为浮点数
空格问题,两端的空格自动去除,中间的空格会被认定为字符
字符串转布尔
仅空字符串转换为布尔值是false,除此之外全部是true
空格不是空字符串
字符串转换为对象
空格不是空字符串
转换为字符串对象
布尔转数值
true转为1,false 转为0
布尔转字符
转换后就是字符串true和false
布尔转对象
转换后就是布尔值对象
任何类型转布尔
六种布尔值是false,其他都是true
var a="";
var b=0;
var b=0;
var d=false;
var e=null;
var f=undefined;
字符串方法
str.trim();清除字符串前后空格,中间不清除
undefined null 转换为字符串、数值
undefined转字符串字符串的u,n相同
u用Number转数值NaN,n转为0
u,n用parseInt转全为NaN
运算符
算术运算符
加+,减-,乘*,除/,取模(取余)%
浮点数运算时,会有误差(计算机精度问题)
在算数运算符中前后出现字符串,且使用+号,则实现字符串首尾相连的方式将内容连接
在算数运算符中前后出现字符串,且使用+号,则实现字符串首尾相连的方式将内容连接
所有类型遇到减乘除取模,都会隐式转换为数值后运算,包括字符串
赋值运算符
=、+=、-=、/=、*=、%=
赋值运算符优先级最低
<<=左移、>>=右移
计算机先转为二进制,在二进制基础上左移,右侧补0,计算结束后转为十进制输出。右移同理
一元运算符
++、--
运算优先级很高,但不代表返回优先级高
单独使用,结果相同。参与其他一起运算或赋值时,考虑先返回还是先运算后返回。
对于++ / -- 通常都会直接使用算术运算来处理,也就是会将内容先隐式转换为数值,然后再运算
关系运算符
< 、> 、<=、 >=返回布尔值
== 判断值是否相等、 === 判断值和类型是否相等。以后所有代码必须用===(更严谨)
注:undefined==null独立相等,NaN和任何数据(包括它自己)都不相等。
isNaN,将字符串转换为数值后,判断是否是NaN非数值
= !==
逻辑运算符
! 逻辑非 取反
&& 逻辑与 逻辑与
|| 逻辑或 如果obj转换布尔值是true,直接熔断