一分钟带你认识js的理论知识

认识js的理论 段红飞

赋值式写法

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,直接熔断

还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :