js 作者 布兰登·艾克 布兰登·艾奇 10天左右完成
01-JS发展历史
js javascript
1. livescript
2. javascript
3. ECMAScript
02-JS可以干什么
网页游戏
动画
交互数据
人脸识别
小程序
APP:android(java) ios(object-C)
typeScript
03-JS的写法
行内写法
<!-- javascript:; 执行一个js语句-->
<!-- alert(1) 弹出框 警告框 -->
<a href="javascript:alert(1);">哈哈</a>
<!-- on 当 -->
<!-- click 点击 -->
<div οnclick="alert('您中奖了')">div</div>
内部写法
<input type="button" value="按钮" id="btn">
<a href="javascript:;" id="a">aaa</a>
<!-- 双标签 -->
<script>
// alert(100)
btn.onclick = function () {
alert(100)
}
a.onclick = function () {
alert(200)
}
</script>
外部写法
html: <input type="button" value="按钮" id="btn">
<a href="javascript:;" id="a">aaa</a>
<!-- 双标签 -->
<script src="a.js"></script>
js:btn.onclick = function () {
alert(100)
}
a.onclick = function () {
alert(200)
}
04-变量
书写
变量
var 关键字
关键字和名字直接必须有空格
等号叫赋值,右边的值赋给左边的名字
var a = '张三'
var b = '李四'
var c = '帕合尔丁'
var a = 'Jack'
alert(a)
命名规范
不能数字开头
var 1 = 'abc'
alert(1)
不能使用关键字
var var = 'vvv'
alert(var)
可以使用中文(不建议)
var 嘿嘿 = '张三'
alert(嘿嘿)
可以使用特殊符号 $ _
var $ = '哈哈哈'
var _ = '哈哈哈2'
alert(_)
var $_$ = '哈哈哈3'
alert($_$)
var __ = 'aaa'
alert(__)
命名规则
驼峰命名
第一个单词首字母小写,第二个单词首字母大写
paddingLeft marginTop backgroundColor
05-数据类型
number
number
数字
var n = 200
alert(typeof n)
string
string
字符串
var str = '100'
alert(typeof str)
boolean
boolean
布尔值:true(真) false(假)
布尔值作为条件判断使用
var b = false
alert(typeof b)
var age = 17
alert(age > 18)
null
null
空
检测数据类型是object -> 对象
var nu = null
alert(typeof nu)
undefined
undefined
未定义
var a
alert(typeof a)
程序可以是未定义但是不能报错
js是一个单线程语言,一旦阻塞都不执行
var abc
alert(abc)
alert(100)
06-运算符
<script>
// 运算符: + - * / %
// alert(10 % 3)
// alert(21 % 4)
// 89小时 计算 多少天 多少小时
// 保留整数 parseInt(12.555) -> 12
var day = parseInt(89 / 24) // 天数用除法
var hours = 89 % 24 // 小时数用余数
alert(day + '天' + hours + '小时')
</script>
07-数据类型转换
转数字
parseInt() 整数
parseFloat() 小数 浮点数
Number() 纯数字
转字符串
toString()
var n = 12
alert(typeof n.toString())
alert(typeof (n + ''))
转布尔值
Boolean()
非数字
NaN
08-真和假
真:true 非0数字 非空字符串
假:false 0 空字符串 null undefined NaN
布尔值
var b = Boolean(false)
数字
var b = Boolean(-1)
字符串
var b = Boolean('')
空
var b = Boolean(null)
未定义
var b = Boolean(undefined)
NaN
var b = Boolean(NaN)
alert(b)
09-运算符2
数学运算符
+ - * / %
比较运算符
< > <= >= == === != !==
先比较内容
alert(100 == '100')
先比较数据类型
alert(100 === '100')
逻辑运算符
// || && !
alert(!true) -> false
alert(100 != '100') -> false
alert(100 !== '100') -> true
短路判断
alert(true || 100) -> true
alert(true && 10) -> 10
alert(false && 10) -> false
10-赋值运算符
+= -= /= *= %=
var n = 100
alert(n + 100) ->200
alert(n) ->100
var n = 100
n = 200 被重新赋值
alert(n)
var n = 100
n = n + 100
n += 100 在原来的基础上加100
alert(n)
var m = 500 m += 100
m += 100
m += 100
alert(m)
11-自增
自增 自减
自己本身+1 或者 -1
自增
n++
自减
n--
alert(n)
var i = 0
console.log(i++) 先输出了结果 后自增
console.log(i)
console.log(++i) 先自增后输出结果
console.log(i)
面试题
0 + 2
console.log(i++ + ++i) ->2