java学习的第十六天:JavaScript学的第二天:数据类型,对象,函数
数据内型:
数组:
数组:
数组的定义:
var str=[1,31,31,3125,5342,2]
数组的长度:
console.log(str.length)
str.indexOf(31)
通过输入查找所得到的值,放回的是1,
3、slice()截取Array的一部分,放回一个新的数组:
str.slice(1,4) // (3) [31, 31, 3125]
4、push,pop就是在这个数组里面添加元素:
push 是压入到尾部,
pop是弹出尾部的一个元素。
5、unshift(), shift()头部。
str.unshift() 在头部压元素
str.shift() 在头部弹出一个元素
排序
str.sort()
元素反转:
str.reverse()//元素反转:
拼接:concat()
str.concat(123,123,123,1231232312)//将这些内容拼接在str这个数的后面,并进行输入,但是不会在这个函数里面去。
链接符join()
str.join('-')//就是将输入的时候,将不同的输出内容之间进行链接使用的,以便我们看清楚
多维数组:
arr=[[12,23,12],[123,123,423],[123,435,7567]]//多维数组的定义:
arr[1][1]//打印出相对应的数组
数组:存储数据(如何存,如何取,方法都可以自己实现)
对象:
若干个建值对:
var 对象名={
属性名:属性值;
属性名:属性值;
属性名:属性值;
属性名:属性值;
}
var person={
name:"大熊",
age:18,
email:"2608444177@qq.com",
asdasd:23
}
在js中对象,{。。。。。。。。。。}表示一个对象,键值对描述属性XXXX: XXXX,隔开,最后一个不加逗号。
对象赋值
person.name
"大熊"
使用一个不存在的对象属性,不会报错,undefined
person.asdasadasda
undefined
动态的删减属性:
delete person.asdasd
true//放回一个true的时候,就是证明,已经删除成功
动态的添加
person.haha="haha"
"haha"
判断属性值是否在这个对象中 xx in xx
'age' in person
true
流程控制
if判断
var age=3;
if(age>22){
alert('哈哈哈哈哈哈哈哈哈哈哈哈哈哈')
}else{
alert('asdasdasdas')
}
while() 循环
var age=3;
while (age<100){
age=age+1;
console.log(age)
}
for循环:
var age=4;
for (let i = 0; i <100 ; i++) {
age=age+i;
console.log(age)
}
forEach循环
var age=[123,123,1231,231,3,23,3544,23,344534,5234,423,43341,234134,123,1231231,31231,23,123];
age.forEach(function (value) {
console.log(value)
})
Map 和set
Map
创建出来的一个map就可以根据这里面的数据进行查询,也就是说,根据直接查询map里面的 daxiong即可查询100
var map=new Map([['daxiong',100],['guilan',99]]);
var name=map.get('daxiong')//这个就是查询大熊所对应的值是多少
map.set('dasd',22)//这个是在末尾添加一对值
console.log(name)//这个是打印刚刚上面所对应的值
console.log(map)//这个是打印,里面的所有值
map.delete('dasd')//这个是删除这对值
console.log(map)//打印
函数
方法:对象(属性,方法)
函数:
var sa=-21;
console.log(abs(sa))
function abs(x) {
if(x>0){
return x
}else {
return -x;
}
}
一旦执行到return代表函数结束,返回结果;
如果没有执行return,函数执行完也会放回结果,结构就是undefined
调用函数
rest参数只能写在最后面:
变量的作用域
在JavaScript中,var定义变量实际是有作用域的。
假设在函数体中声明:则在函数体外不可以使用-(非要想实现的话,后面就要研究一下闭包)
function dx() {
var x=1;
x=x+1;
}
//而这里面的x函数就只能在这个模块里面使用,不能在外面使用
全局对象: window
var x='sdasda'
alert(x)
window.alert(x)
JavaScript实际上只有一个全局一个作用域,任何变量,假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域都没有找到,,就会报错,‘ReFrenceError
规范
由于我们所有的全局变量都会绑定到我们的window上,如果不同的js文件,使用了相同的全局变量,冲突···》如果能检查冲突:
就是自己去设置一些变量,而且这是变量就不要在去绑定到window上面即可
局部作用地域:let
for (let i = 0; i <100 ; i++) {
let x=1;
x=i;
console.log(x)
}
console.log(x)
建议大家去使用let去定义局部作用域:
常量 const
在Es6之前怎么定义常量,只有用大写字母全部大写字母命名的变量就是常量,建议不要修改这样的值
在ES6就引入了关键字:
var PI=3.14
const dx=2121
方法
方法:就是把函数放在对象的里面,对象只有两个东西,属性和方法:
内部对象
Date 日期和时间 标准对象
<script>
var now=new Date();
now.getFullYear()//年
now.getMonth()//月
now.getDate()//日期
now.getDay()//星期几
now.getHours();//时
now.getMinutes();//分
nwo.getSeconds();//秒
now.getTime();//时间戳,从1970年1月1号,00:00分 到现在的毫秒数是多少:
</script>
浙公网安备 33010602011771号