<script>
//输入语句//
prompt('请输入年龄:')
//打印到页面//
document.write('<strong>你们真是小黑子</strong>')//括号内可识别标签//
//控制台输出语句//
console.log('小黑子')
prompt('请输入:')
//变量:盒子---存储数据的容器,数据本身不是变量
//变量的声明:
// let 变量名 var 变量名
let age
//变量赋值
age = prompt('请输入:')
console.log(age)
//变量的初始化
let uname = prompt('请输入您的用户名')
console.log(uname)
//同时定义多个变量(不建议使用)
let a = 'zs' , b = 21
console.log(zs,21)
//let uname = prompt('请输入您的用户名')
//document.write(uname) 打印在页面上
//变量命名规范:1、有效符号(大小写字母、数字、下划线、$)
//2、关键字、保留字不能用于变量命名
//3、不以数字开头
//4、尽量使用有意义的名字,方便后期检查修改
//5、驼峰命名法:用于命名比较长的名字,userName(用大写区别开多个名字)
//var 可以多次声明同一变量
//常量名大写,常量名无法更改,如果更改则会报错
const PI=3.14
console.log(PI)
//js是弱数据类型语言 只有赋值后,才知道是什么数据类型
let uname = 21
console.log(typeof(uname))//可查看数据是什么数据类型
//let uname = 'ss"mm"aa'//用来同时赋多个值避免报错,用""隔开
// console.log(typeof(uname))
//字符串拼接
//let a = prompt('ss')
//let b = prompt('ssb')
//console.log(a+b)
//模板字符串
let uname = prompt('请输入名字')
let age = prompt('请输入年龄')
document.write(`<strong>你叫${uname},今年${age0}岁</strong>`)
console.log(typeof(3<5))
//undefinded 声明,未赋值
//rull NaN not a number
console.log(undefined+1)
console.log(rull+1)
// = 赋值运算符
let a = 21
a = 33
a +=4 //a=a+4
a *=2 //a=a*2
a -=3 //a=a-3
a /=2 //a=a/2
// alert(a)
let b = a++ //先赋值再自增,b=a, a=a+1
alert(b)
alert(a)
b = ++a //先自增再赋值,a=a+1,b=a
//比较运算符
// > < >= <= == ===
//"===":即比较数值也比较类型
//"==":(隐式转换)只比较数值
//&&:“与” ||:“或” !:“非”
alert(4>3 && 3<5) //两真才为真,一假则为假
alert(4<3 || 3<5) //一真则真,全假则为假
alert(!(4<3)) //非真则为假
let age =11
//if(条件){执行的代码}
if (age <18){
document.write('你是小黑子')
}
//let age =+prompt('请输入你的年龄')
//if(age<=18){
// alert('你是ikun')
// }
//else{
// alert('你是小黑子')
// }
let year =+prompt('请输入年份')
if(year%4===0 &&year%100===0 || year%400===0){
alert('闰年')
}else{
alert('平年')
}
<script>
let a =+prompt('请输入num1')
let b =+prompt('请输入num2')
//?:判断条件,条件成立时执行条件,不成立则执行
a>b?alert(`最大值是:${a}`) :alert(`最大值是:${b}`)
</script>
<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:
alert('周末')
case 7:
alert('周末')
break
default:
alert('你是外星人吗0.o?')
}
</script>
<script>
// let i =10
// while(i>0){
// console.log('你是小黑子')
// i--
//}
//1~100的累加和
let i=0
let sum =0
while(i<=100){
sum+=i
i++
}
alert(sum)
</script>
<script>
// 0 1 2 3 4
let arr=['张三', '李四','王五','小米','华为']
//数组的声明方式
//arr[索引下标]
alert(arr[4])
//数组遍历
//for(let i in arr){
// console.log(arr[i]);
//}
//数组的操作
//通过索引下标给对应元素重新赋值
arr[1]='张三'
console.log(arr instanceof Array);
let arr2=[1,2,3,4]
//concat合并数组
arr3 =arr.concat(arr2)
console.log(arr3);
//增加
//push 在数组的末尾添加元素
arr.push('gg')
console.log(arr);
//unshift 在数组的首部添加元素
arr.unshift('kk')
console.log(arr);
//删除
//shift 删除首部的元素
arr.shift()
console.log(arr);
//pop 删除尾部的元素
arr.pop()
console.log(arr);
//splice(删除的起始位置,删除的个数)
arr.splice(2,1)
console.log(arr);
//也可以用于添加元素
//splice(删除的起始位置,0,要添加的元素)
arr.splice(2,0,'李四')
console.log(arr);
//可以用于改变元素间连接的字符或者元素,并打印所有元素
console.log(arr.join('**'));
//reverse颠倒数组的元素排列
console.log(arr.reverse());
//slice截取数组()中的代表截取的个数
console.log(arr.slice(3));
//function 函数名(){
// 执行的代码
//}
//调用函数 函数名()
//函数必须通过调用才会执行
function sayHi(){
console.log('hello,function');
}
sayHi()
function getSum(a,b){
// console.log(a+b);
return a+b //函数要有返回值,必须添加return关键字
}
let c=getSum(a=2,b=9)
console.log(c);
//块级作用域:函数里面的内容
//全局作用域:函数外边的内容,全局作用域声明的变量可以被局部作用域使用,但局部作用域里声明的变量不能被全局作用域使用。
function getSum(){
//arguments:接收所有实参并保存到数组里
console.log(arguments);
let sum=0
for(let i in arguments){
sum+=arguments[i]
}
return sum
}
let e=getSum(3,2,1,5,7,9,5,6)
console.log(e);
</script>
<script>
//值传递,只是把新的值赋给元素并不改变原来的值
let a=10
let b=20
function change(x,y){
x=30;
y=50;
}
change(a,b);
alert(a+"--"+b)
//引用传递,传地址,值会发生改变
let arr=[1,3,4,5]
function change2(a){
a.push(1000)
}
change2(arr)
alert(arr)
</script>
<script>
let obj={
uname:'ss',
age:21,
gender,'nan'
}
//改:对象.属性名
obj.uname='GGbond'
console.log(obj);
//增加:对象,新属性名
obj.sing=function(){
console.log('sing~');
}
//删除
//delete 对象.属性名
delete obj.gender
console.log(obj);
</script>