JavaScript基础知识-(词法,类型)

本文深入讲解JavaScript的基础知识,包括代码引入方式、词法结构、数据类型及运算符,阐述其在网页开发中的重要作用。

1,JavaScript的引入

  JavaScript赋予网页灵魂,让页面可以动起来,更增加了与用户的交互,使用起来的也比较方便

<head>
	<script type="text/javascript">
    	// javascript 代码
	</script>
</head>
复制代码

或者在body的结尾引入

<body>
	<script src="" type="text/javascript" charset="utf-8"></script>
</body>
复制代码

JS放在head和放在body中的区别
1,JS如果放在head中,则先被解析,但这个时候body还没有解析,DOM节点还没有生成,所以会返回空值 undefind。解决的办法

windows.onload = function() {
  // JS代码
}
复制代码

所以:放在head中的JS代码会在页面加载完之前就被读取了,而放在body结尾的代码,会在整个页面加载完之后被读取。
JavaScript应该放在哪里?有时候我们想让一段脚本在页面加载的时候优先执行,有时候我们想在用户触发一个事件的时候执行,所以,具体放在哪里,因需求而定。

2,词法结构

(1) JavaScript是区分大小写的,所以声明变量的时候要注意。HTML是不区分大小写的
(2) JavaScript注释方法:单行注释:// 多行注释:/**...*/ 多行注释不能嵌套多行注释
(3) JavaScript没有强制要求使用分号,因为在解析的时候,除了分号还会以换行作为断句的依据,从而会帮你填补分号。个人建议:为了增强代码可读性,减少歧义,个人意见是在语句结束的地方,加上分号。
(4)JavaScript标识符第一个字符必须是字母,下划线,或者美元符号,切记,数字是不允许作为首字符出现的,而且变量名中不能出现空格,或者标点符号 (5)在JavaScript里面具有某种特殊意义的单词叫做关键字,可能将来作为关键字的叫做保留字。这些单词是不允许作为声明的变量使用的
关键字 && 保留字

abstractdoublegotonativestatic
booleanenumimplementspackagesuper
byteexportprivatesynchronizedimport
charextendsintprotectedthrows
classfinalinterfacepublictransient
constfloatlongshortvolatile
breakdocaseelsevoid
continueforswitchwhiledebugger
ifthrowdeleteintry
varfunctionnewreturndefault
letyieldargumentstruethis

3,类型

JavaScript的6中数据类型,可分为两类:原始类型对象类型
原始类型:number,string, boolean, null, undefined
对象类型:object( 包含Function, Array, Date, RegExp,Error ... 等等),
符合(symbol) ES6新增类型
可以用typeof运算符来查看值的类型

<script type="text/javascript">
	console.log(typeof undefined === 'undefined')
	console.log(typeof true === 'boolean')
	console.log(typeof 100 === 'number')
	console.log(typeof 'abc' === 'string')
	console.log(typeof {} === 'object')
	console.log(typeof function a(){} === 'function')
	console.log(typeof null === 'object') // 特别注意,存在已久的bug
	console.log(typeof Symbol() === 'symbol')
	// 日常开发判断null方法
	var str = null;
	console.log(!str && typeof str === 'object')
</script>
复制代码

上述代码结果返回都是true值

4,表达式和运算符

(1)&& ,& 第一个和第二个都为true,则返回true
(2)|| ,| 只要有一个为真值就返回真,全假返回false
(3)a++ 先使用a值,然后加1, ++a 先加1,然后使用a值 (b--和--b同理)
(4)= 称作赋值 == 称作相等 === 称作严格相等

    1,如果两个值类型不相同,则他们不相等
    2,如果两个值都是null,undefined,则他们不相等  
    3,如果两个值都是false,true,则他们相等    
    4,如果任何一个值为NaN,或者两个都为NaN,则不相等
    5,如果两个引用值指向同一个对象,数组或者函数,则相等
复制代码

(5)in运算符,左边操作数是一个字符串,右侧是一个对象,如果右边对象里面含有左边操作数的值,那么表达式返回true
(6)instanceof运算符,左侧为一个对象,右侧表示对象的类,如果左侧对象是右侧类的实例,返回true。注意:所有的对象都是Object的实例

转载于:https://juejin.im/post/5c6f97ddf265da2d9262e3ec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值