js的接入方式
1.内部引入
<script>
prompt('请输入您的年龄:')
</script>
2.外部引入
//在外部js文件中写入,再引用
<script src="./外部js文件的路径">
</script>
js的输入语句
1.输入语句
prompt('xxxxxxx')--这里使用单引号
2.打印到页面
document.write('<strong> wdwadfbej </strong>')
3.控制台输出语句
console.log(' ')
//在控制台输出
变量
变量相当于存储数据的容器
变量的声明
let 变量名
var 变量名(可以多次声明同一变量,但容易出错现不常用)
变量的赋值
mum = prompt('请输入您的密码:')
mum = 123456
console.log(mum)
//变量的赋值存在覆盖性
变量的初始化
let uname = prompt('请输入你的用户名:')
//声明的同时进行赋值
console.log(uname)
同时定义多个变量
let uname = 'xxx' ,age='100'
变量的命名规则
1、有效符号(大小写字母、数字、下划线、$)
2、关键字、保留字不能用于变量命名
3、不以数字开头
4、尽量用有意义的变量名
5、驼峰命名法 userName
const常量
// 常量名大写 常量无法更改
const PI = 3.14
// PI = 4.456
console.log(PI)
数据类型
// js是弱数据类型语言 只有赋值之后,才知道是什么数据类型
let uname = 21--整型
uname = 'gouxin'--字符型
console.log(typeof (uname))
基本数据类型
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 % 2)
字符串类型
<script>
let uname1 = 'nnnsns'
console.log(typeof (uname1))
let uname2 = "nnnsns"
console.log(typeof (uname2))
let uname3 = "nnn'gouxin'sns"
console.log(typeof (uname3))
let uname4 = 'nnn"gouxin"sns'
console.log(typeof (uname4))
//外为双引号里面就需要使用单引号,外为单引号内就需要用双引号.
// 字符串拼接用+
let a = +prompt("请输入num1")
let b = +prompt("请输入num2")
// alert 警示框
alert(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>
1.加+转换为整型,prompt为默认字符型
let a = +prompt('num1')
let b = +prompt('num2')
console.log(Number(a) + Number(b))
console.log(typeof (+a))
let c = '200.9875px'
console.log(parseInt(c))--截取c中整数部分
console.log(parseFloat(c))--截取c中浮动部分只能截取字符前的数字
</script>
==与===的区别
==(隐式转换)只比较数值,将字符串转换为数字类型后进行比较
===既比较数值也比较类型
js的运算符,比较运算符,逻辑运算符以及分支语句与c语言相似
同时switch,while,do while,for等语句也与c语言相通.
三元运算符
<script>
let age = +prompt('请输入您的年龄:')
if (age <= 18) {
alert('你不要乱跑')
} else {
alert('恭喜你,成年了')
}
// 判断条件?条件成立时执行的语句:条件不成立时执行的语句
age <= 18 ? alert('你不要乱跑') : alert('恭喜你,成年了')
</script>
循环补充
<script>
let arr = [1, 2, 3, 66, 4, 5]
1. for in
for (let i in arr) {
console.log(arr[i])
}----i为数组下标
2. for of
for (let k of arr) {
console.log(k)
}----k为数组元素
</script>
数组
<script>
// let name1 = '俊杰'
// 有序的数据序列
// 0 1 2 3 4 5
let arr = ['gouxin', 'huangzhong', 'jialuo', 'zhadanren', 12, true]
// 数组的声明方式
// arr[索引下标]
alert(arr[5])
let arr2 = new Array()
// 数组遍历
/for (let i in arr) {
console.log(arr[i])
}
// 数组的操作
// 通过索引下标给对应元素重新赋值
arr[1] = 'guanyu'
console.log(arr instanceof Array)
let arr2 = [1, 2, 3, 4]
// concat合并数组
arr3 = arr.concat(arr2)
console.log(arr3)
// 增 push 在数组末尾添加
arr.push('姜加')
// unshift 在数组首部添加元素
arr.unshift('jiangjia')
arr.shift()
arr.pop()
// splice(删除的起始位置,删除的个数)
arr.splice(3, 1)
// splice(删除的起始位置,0,要添加的元素)
arr.splice(3, 0, 'jiangjia')
console.log(arr)
console.log(arr.join(' **'))
console.log(arr.reverse())
console.log(arr.slice(3))
</script>
二维数组
<script>
let student = [['jiangjia', 31, 'sing'], ['xuchao', 21, 'dance']]
// console.log(student[1][0])--下标查找
for (let i in student) {
for (let j in student[i]) {
console.log(student[i][j])
}
}
// student.length 获取数组长度的
</script>