JS总结篇01--javascript基础

一. <script>标签
内联:javascript程序利用<script></script>标签可以被插入到HTML文档的任何地方,当浏览器执行遇见该标签时将会自动执行其中的代码程序。
外联:利用script的src属性可以引入外部js,该路径可以为绝对路径,相对路径或者完整的URL链接,如
<script src="/path/to/script.js">
<script src=“https://cdnjs.cloudflare.com/ajax/libs/lodash.js”>

note1:复杂的js代码段应该采用外联模式引入,这样的好处是浏览器下载该js后会将文件加入缓存,这样当其他的页面再次引用该js时,浏览器将从缓存中读取,而不是重新下载,加快了网页速度。
note2:一旦script标签设置了src属性,则其中的内容部分将被忽略掉。

二. 分号“;”
大多数情况下当代码分行时,执行引擎会自动在每行结束时加上“;”
但有些情况除外。如:
alert(3 +
1
+ 2);
此时会正常输出6, 因为行以“+”结尾,是一个不完整表达式。
再如:
alert(“There will be an error”)
[1, 2].forEach(alert)
此时,第一个alert显示后将会报错,因为JavaScript不会在[]前加上“;”,于是该表达式实际为
alert(“There will be an error”)[1, 2].forEach(alert)因此会报错。

三. 严格模式 'use strict’
ES5出现时,新增和修改了一些语言特性,为了保证向下兼容,许多修改都默认不启用,为了启用这些新特性,就需要采用’use strict’模式,使执行引擎运行在现代模式。

note1:当'use strict'被置于script句首时,整个script都会启用 strict模式,但是'use strict'也可以被放在函数的句首,这样就只在函数内启用strict模式。
note2:一旦启用strict模式,便无法退回default模式。

四. 数据类型
五种基本类型:
number: 整数,小数, NaN,Infinity,-Infinity
string: “string”,‘string’,`string`
boolean
null:js中的null不同与其他语言,不代表指向空指针,或指向空对象,js中的null代表一个特殊值,类似’nothing’,‘empty’,或’值未知’
undefined:代表未赋值
特殊类型:
object:对象类型。
symbol: 为对象创建唯一标识符的类型。

typeof 操作符几种特殊情况:
typeof Math // "object"  /*内置对象
typeof null // "object"   /*语言错误导致
typeof alert // "function"  /*函数属于对象,没有function类型,typeof为了区分函数因此返回function。

五. 类型转换
ToString:
String(value);
ToNumber:
Number(value) ,除了二元运算符“+”以外的算术运算符,"+“一元运算符也会进行ToNumber转换,如+true // 输出 1。“+”二元运算符在碰见string时会将数字转换为string,需注意运算从左到右进行,如:
2+2+‘1’ // 输出"41” 而不是"221"
转换规则:

ValueBecomes
undefinedNaN
null.0
true/false1/0
string去除首尾空格后,如果剩余部分为空则结果为0,否则从字符串转换,出错时返回NaN

ToBoolean:
Boolean(value)

ValueBecomes
0,null,undefined,NaN,""false
其他true

六. 比较运算符
字符串比较:根据unicode大小逐字符比较
不同类型比较:转换为number类型比较
全等比较(===):不进行类型转换比较

特殊情况:null/undefined/NaN
null 和 undefined 在进行相等比较(==)时,不进行类型转换,并且
null == undefined,在进行其他非相等比较时转换为number比较。
NaN 与任何值进行比较都会返回false

七. 界面交互
alert(title) /*展示信息
prompt(title [,title]) /*返回输入值
confirm(question) /*返回true/false

八. 逻辑运算符
||(OR):
1.返回第一个true的结果,都不为falsy的话返回最后一个值 如:

let name = currentUser || defaultUser || 'unnamed'

2.懒汉模式,表达式从左到右执行,一旦遇到为true的表达式则停止后续判断:

let x;
true || (x = 1);
alert(x); // undefined, because (x = 1) not evaluated

&&(AND):
1.返回第一个falsy的值,都不为falsy的话返回最后一个值
2.懒汉模式,一旦遇到为falsy的表达式则停止后续判断

let x = 1;
(x > 0) && alert( 'Greater than zero!' );

!(NOT):
!!:boolean类型转换

优先级: ! > && > ||

九. 循环
while(){}
do…while
for(){}
break <labelName>;跳出<labelName>循环
continue <labelName>:结束<labelName>当次循环,进入下次循环

break和continue无法被用于三元运算符右边

labelName : for(){
continue labelName;
}

后续补充点:
1.位运算符详细说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值