贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

html5教程(HTML5 入门教程)

来源:网络转载 时间:2024-05-09 14:52:01


JavaScript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明变量的类型,在程序运行时,类型会被动态的确定,并且在执行过程中可以动态的修改变量的类型。同时不同类型变量在运算时会自动进行隐式的类型转换。以下是一些常见的隐式转换示例:

varfoo=2020;//typeoffoo->"number"varfoo="SpreadJS"//typeoffoo->"string"varfoo=true+1;//foo=2typeoffoo->"number"varfoo=true+false;//foo=1typeoffoo->"number"varfoo='5'-'2';//foo=3typeoffoo->"number"varfoo=20+20+"SpreadJS"//foo="40SpreadJS"typeoffoo->"string"varfoo="SpreadJS"+20+20//foo="40SpreadJS"typeoffoo->"string"

依据最新的 ECMAScript 标准将数据类型定义了 8 种:

其中为原始类型:Boolean、Null、Undefined、Number、BigInt、String、Symbol 和对象类型:object

关于原始类型需要知道的几个知识点:

  • 原始类型的值是按值访问的

即在赋值和修改值时是通过值传递的方式来完成的,对变量赋值或者修改值会在内存中重新分配空间。

例如:

vara,b,x,y;a="SpreadJS";b="GrapeCity";x=a;y=b;console.log(a,b,x,y);//result:SpreadJSGrapeCitySpreadJSGrapeCity

a和x, b和y之间赋值是完全独立的拷贝,互不干涉,如果我们将其中任何一个变量的值重新改变,其他相同值的变量也不会受到任何影响。

  • 严格相等===和非严格相等==

对于原始类型,==只进行值比较,如果是不同类型则会在转换后再比较,===则会比较数据类型。

例如:

undefined===null//fasleundefined==null//truetrue===1//fasletrue==1//truenull==0//false
  • Null 和 Undefined

null和undefined在使用中几乎没有区别,在使用非严格相等比较时结果也为true,它们的区别就是在于进行数值转换时它们的字面意义不同,undefined代表未定义,转为数值为NaN,而null为空、转为数值时为0。

例如:

Number(undefined)//NaNNumber(null)//01+undefined//NaN1+null//1

虽然两者差别不大,并不会严格按照上面的区分去使用,但在实际项目应用中,对于空值的判断两者则都需要考虑。

  • NaN

NaN 即Not a Number,表示了非数字类型,任何和NaN的操作返回值都是NaN,NaN不等于NaN。其中有一个全局方法 isNaN(),它的作用是检查一个值是否能被 Number()成功转换。 如果能转换成功,就返回 false,否则返回 true 。

例如:

NaN==NaN;//fasleisNaN('123')//false能转换isNaN('abc')//true不能转换
  • 浮点数精度误差

在JavaScript中,整数和浮点数都属Number数据类型,所有数字都是以64位浮点数形式存储的,也就是说JavaScript底层没有整数,1和1.0是相同的。

下面举几个例子来说明:

//加法0.1+0.2=0.300000000000000040.1+0.7=0.79999999999999990.2+0.4=0.6000000000000001//减法0.3-0.2=0.099999999999999981.5-1.2=0.30000000000000004//乘法0.8*3=2.400000000000000419.9*100=1989.9999999999998//除法0.3/0.1=2.99999999999999960.69/10=0.06899999999999999//比较0.1+0.2===0.3//false(0.3-0.2)===(0.2-0.1)//false

类似这样看起来不会算错的问题,在某些系统尤其是涉及财务的系统中会是一个严重的问题,这里就不展开解释发生误差的原因了,大家可自行研究,我们这只对解决方案简单的列一下,1. 可以通过引用类似Math.js、decimal.js、big.js这样的类库。2.对于对数字精度要求不高的系统,可以格式化并保留x位小数来处理。3. 计算时,将小数部分和整数部分分开计算再合并,等。

关于引用类型需要知道的几个知识点:

  • 引用类型的值是按引用访问的

在操作对象时,实际上是在操作对象的引用而不是实际的对象。给变量赋值改变的是对象的引用关系。

例如:

varobj1={a:1};varobj2=obj1;obj1.a=2;console.log(obj2.a)//result:2.obj1和obj2为同一对象obj1={a:3};console.log(obj2.a)//result:2.obj1指向新对象,obj2不变
  • 引用类型===和==意义相同都为引用的比较

即是否为同一对象,各类型之间的非严格相等==比较类型转换可参考下表

<thead>

被比较值B


Undefined

Null

Number

String

Boolean

Object

被比较值A

Undefined

true

true

false

false

false

IsFalsy(B)

Null

true

true

false

false

false

IsFalsy(B)

Number

false

false

A === B

A === ToNumber(B)

A=== ToNumber(B)

A== ToPrimitive(B)

String

false

false

ToNumber(A) === B

A === B

ToNumber(A) === ToNumber(B)

ToPrimitive(B) == A

Boolean

false

false

ToNumber(A) === B

ToNumber(A) === ToNumber(B)

A === B

ToNumber(A) == ToPrimitive(B)

Object

false

false

ToPrimitive(A) == B

ToPrimitive(A) == B

ToPrimitive(A) == ToNumber(B)

A === B

类型检测

JavaScript中类型检测方法有很多,有例如:typeof、instanceof、Object.prototype.toString、constructor、duck type这几种。

虽然方法很多,但判断思路就是两种:1根据数据类型判断 2 根据构造函数判断。

  • typeof

typeof可以判断数据类型,依据之前的介绍,javascript变量类型分为值类型和引用类型,typeof应用场景只可以区分值类型的数据类型,例如:

typeof42//"number"typeof{}//"object"typeofundefined//"undefined"
  • instanceof

和typeof一样,instanceof用于判断引用类型的数据类型。

例子:

(function(){}) instanceof Function

其他的还有Object.prototype.toString、constructor、duck type,在这就不一一介绍。

到此,相信大家对“HTML5 入门教程”有了更深的了解,不妨来实际操作一番吧!这里是本站网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

标签:html5教程-

抖音(Tiktok)是由北京字节跳动科技有限公司(ByteDance)孵化的音乐创意短视频社交网站。它于2016年9月20日上线,主要面向全年龄段的用户,尤其是...

飞极速为您提供高清在线电影、电视剧大全、动画片,综艺等,飞极速在线更新及时,播放速度快,给您带来最好的观影体验!飞极速在线,免费提供日本新番动漫、最新电影和最新...

《南华早报》(英语:South China Morning Post, SCMP)和星期日出版的《星期日南华早报》(英语:Sunday Morning Post...

毛利率法就是指依据当期销售净额乘以上期具体毛利率算当期市场销售毛利,并据以计算发出库存商品和期终结存存货成本的一种方式。这一方法常见于商品批发为企业计算当期商品销售成本和期终库存商品成本。商品流通企业因为商品类型多,一般来讲,和类似商品的毛利率基本相同,选用毛利率法可缓降低工作量。毛利率法的计算公式1、 毛利率=销售毛利/销售净额* 100%;2、销售毛利=销售净额*毛利率;3、销售净额=商品销售...

团购房是什么意思?团购房是指一定数量的置业者自发组团或者在团购组织的安排下,由选出的代表并协同法律工作者与开发商协商,以低于散户市场成交价格签订有诸多附加条款的《合同》的消费过程。目前团购大致有两种形式:一种是置业者自发组团;另一种是单位组织职工组织,不过由于有些团购房属于非正规的开发商融资手段,因此参加团购也会有一定风险。单位团购房靠谱吗?单位团购的房子整体来说还是比较可靠的,但我们还是要看这个...

移动平均钱,英文简称“MA”,是以道琼斯的“平均成本概念”为理论基础,采用统计学中“移动平均”的原理,将一在时期内的股票价格平均值连成曲线,用来显示股价的历史波动情况,进而反映股价指数未来发展趋势的技术分析方法,它是道氏理论的形象化表述,也是一种极为重要的技术分析指标。技术分析指标一般可以分为三类:趋势类、能量类和摆动类。移动...

TOP