js内部引入方式
<body>
<script>
//内部
prompt('请输入你的年龄')
</script>
</body>
js外部引入方式
waibu.js
<script>
//内部
prompt('请输入你的年龄')
</script>
wenjian.html
<body>
<script src="./waibu.js">
</script>
</body>
输入输出语句
<script>
输入语句
prompt('请输入你的年龄')
打印到页面
document.write('你们真是小天才')
可以识别标签
document.write('<strong>你们真是小天才</strong>')
控制台输出语句
console.log(' 我现在要在控制台输出')
</script>
变量
<script>
//变量:盒子,存储数据
//变量的声明
// let 变量名(主要使用 var 变量名
let age
//变量赋值
age = prompt('请输入您的年龄:')
console.log(age)
//变量的初始化
let uname = prompt('请输入您的用户名:')
console.log(uname)
//同时定义多个变量
let uname='zs',age=21
console .log(uname,age)
document.write(age)
</script>
名命规范
<script>
1、有效符号(大小写字母、数字、下划线、$)
2、关键字、保留字不能用于变量命名
3、不以数字开头
4、尽量用有意义的变量名
5、驼峰命名法
userName
</script>
let和var的区别
<script>
// var 可以多次声明同一变量
console.log(age)
// var age
let age
</script>
const常量
<script>
常量名大写 常量无法更改
const PI = 3.14
console.log(PI)
</script>
数据类型
<script>
//js是若数据类型语言 只有赋值之后才知道数据类型
let uname = 21
uname = 'gouxin'
console.log(typeof(uname))
</script>
基本数据类型
<script>
let a = 21
console b = 33
console.log(a)
console.log(a + 2)
console.log(a + b)
console.log(a - b)
console.log(a * b)
console.log(a / b)
console.log(a % b)
</script>
字符串类型
<script>
let uname1 = 'nnnsns'
console.log(typeof(uname1))
let uname2 = 'nnnsns'
console.log(typeof(uname2))
let uname3 = 'nnn'
console.log(typeof(uname3))
let uname4 = "nnnsns'wadfawf'fafw"
console.log(typeof(uname4))
</script>
<script>
默认获取字符串,字符串拼接用+
let a = prompt("请输入num1")
let b = prompt("请输入num2")
//alert警示框
console.log(a + b)
模板字符串
let uname = prompt("请输入名字:")
let age = prompt("请输入年龄:")
document.write('你叫'+uname+',今年'+age+'岁了')
document.write(`<strong>你叫${uname},今年${age}岁了</strong>`)
</script>
布尔类型
<script>
console.log(typeof(3 < 5))
//undefinded 声明,未赋值
//null NaN not a number
console.log(undefined + 1)
console.log(null + 1)
</script>
显示转换
<script>
let a = +prompt('num1')
let b = prompt('num2')
console.log(Number(a)+Number(b))
console.log(typeof(+a))
let c = 200.555588efwf;
parseInt(c)
console.log(parseInt(c))
console.log(parseFloat(c))
</script>
运算符
<script>
// = 赋值运算符
let a = 21
a = 33
a += 4 37
alert(a)
a *= 4
a -= 3
a /= 2
let b = a++ 先赋值再自增
let b = ++a 先自增再赋值
比较运算符
> < >= <= == ===
let num1 = 2
let num2 = '2'
alert(num1 == num2) true
alert(num1 === num2) flase
// == 只比较数值,将字符串转换为数字类型后进行比较
// === 既比较数值,也比较类型
</script>
逻辑运算符
<script>
// && ||
alert(4>3 && 3<5) //两真为真 一假则假
alert(4<3 || 3<5) //一真则真 全假则假
alert(!true)
alert(!(4 < 3))
</script>
单分支语句
<script>
let age = 17
if(条件){
执行的代码
}
if (age < 18){
document.write('nishilalala')
}
</script>
双分支语句
<script>
let age = prompt('请输入您的年龄:')
if(age<=18){
alert('rururu')
}
else{
alert('lalala')
}
</script>
闰年
<script>
let year = prompt('请输入年份')
if(year % 4 === 0 && year % 100 !== 0 || yaer % 400 === 0) {
alert('这是闰年')
}
else{
alert('这是平年')
}
</script>
多分支语句
<script>
let age = prompt('请输入年龄')
if(age < 18){
alert('好好读书')
默认age>=18
}else if(age <=25){
alert('努力赚钱')
}else{
alert('快点结婚')
}
</script>
三元运算符
<script>
let age = +prompt('请输入年龄')
age <= 18 ? alert('你不要乱跑'):alert('恭喜你成年了')
</script>
switch
<script>
let num = +prompt('今天星期几:')
switch(num){
case 1:
alert('今天星期一')
break
case 2:
alert('今天星期二')
break
case 3:
alert('今天星期三')
break
case 4:
alert('今天星期四')
break
case 5:
alert('今天星期五')
break
case 6:
case 7:
alert('周末了')
break
default:
alert('错误')
}
</script>
while循环
while循环
<script>
// while 一定要有终止条件
//千万别连续写
let i = 10
while(i > 0 && i <= 10){
console.log('你是大聪明')
i--
}
</script>
do-while循环
<script>
// while 一定要有终止条件
//千万别连续写
let i = 10
do{
console.log('你是大聪明')
i--
}while (i > 11)
</script>
for循环
<script>
for(let i = 0;i< 10;i++){
console.log('你真是个大聪明')
}
</script>
嵌套循环
<script>
for(let i = 1;i < 8;i++){
console.log(`今天是第${i}天`)
for(let j = 1; j < 11;j++){
console.log('这是今天第${j}朵玫瑰花')
}
}
for(let i = 1;i<10 ;i++){
for(let j =1;j<=i;j++){
console.log(`${i}*${j}=${i*j}`)
}
}
</script>
continue、break
<script>
break跳出循环
for (let i = 1;i < 100;i++){
if(i===50){
break
}
}
continue跳出当前循环
for (let i = 1;i < 100;i++){
if(i===50){
break
}
}
</script>
循环加强
<script>
let a = [1,2,3,66,4,5]
for(i in arr){
console.log(arr[i])
}
for(let k of arr){
console.log(k)
}
</script>
数组
<script>
let arr = ['gouxin','huangzhong','jialuo','zhadanmao',12,true]
数组声明方式
alert(arr[5])
构造函数
let arr2 = new Array()
数组遍历
for(let i in arr){
console.log(arr[i])
}
数组操作
通过索引下表给对饮元素重新赋值
arr[1]='guanyu'
console.log(type(arr))
合并数组
let arr2 = [1,2,3,4]
arr.concat(arr2)
增
push 在数组末尾添加
arr.push('jiaji')
console.lounshift
unshift在数组首部添加元素
arr.unshift('jiaji')
console.log(arr)
删除
arr.shift()
arr.pop()
splice(删除的起始位置,删除的个数)
arr.splice(3,1)
splice(添加位置的前一位,0,添加的元素)
arr.splice(3,0,'dadw')
console.log(arr)
把元素放入字符串冰通过指定分隔符分隔
console.log(arr.join(' **'))
把所有元素颠倒
console.log(arr.reverse())
console.log(arr.slice(3))
</script>
二维数组
<script>
let student = [['jiaji',31,'sing'],['xucha',21,'dance']]
console.log(student[1][0])
for (let i in student){
for(let j in student[i]){
console.log(student[i][j])
}
}
</script>