概述
JavaScript是一门世界最流行的脚本语言
快速入门
引用JavaScript
1内部标签
<script> </script>
2外部引用
abs.js
test.html
<script src="abc.js"></script>
基本语法
alert弹窗
console.log()打印变量
数据类型
数值,文本,图形,音频,视频
number
js不区分小数和整数 ,Number
123整数123
123.1浮点数
1.123e3科学计数法
-99复数
NaN //not a number
Infinity //无限大
字符串
'abc' "abc"
布尔值
true false
逻辑运算
&&两个都为真,结果为真
||一个为真,结果为真
!真即假,假即真
比较运算符
=
==等于(类型不一样,值一样,也 会判断为true)
===绝对等于(类型一样,值一样,结果true)
NaN==NaN,这个与所有的数值都不相等
只能通过isNaN(NaN)来判断 这个数是否是NaN
浮点数问题:
console.log(1/3)==(1-2/3)
尽量避免使用浮点数进行运算,存在精度问题
null和undefined
null是空
undefined未定义
数组
java:一系列相同类型的对象
JavaScript中不需要相同类型的对象
var arr=[1,3,3,'hello'];
new array(1,2,3,4);//错误的!array的首字母必须大写!即Array
对象
对象是大括号,数组中括号
每个属性之间使用逗号,最后一个属性不需要添加
//Person person =new Person(1,2,3,4);
var person={
name :"qinjiang",
age:3,
tags['js','java','web']//这里不需要逗号!
}
'use strict'; 严格检查模式,预防JavaScript的随意性导致产生的一些问题
必须写在JavaScript的第一行!
局部变量建议都使用let
数据类型
字符串
1、正常字符串我们使用 单引号,
2、注意转义字符 \
\'
\n
\t
\u### unicode字符
\x41 ASC11字符
3.多行字符串编写
//tab上面esc键下面
var msg=
`hello
world
你好ya
你好`
6.字符串的可变性,不可变
7.大小写转换
//注意,这里是方法,不是属性了
student.toUpperCase()
student.toLowerCase()
8、student.index0f('t')
9、substring
student.substring(1)//从第一个字符串截取到最后一个字符串
student.substring(1,3)//[1,3)
数组
1.Array可以包含任意的数据类型
var arr =[1,2,3,4,5,6]
2.长度
arr.length
注意加入给arr.length赋值,数组大小就会发生变化~,如果赋值过小,元素就会丢失
indexOf,通过元素获得下标索引
字符串的"1"和数字1是不同的
slice()截取Array的一部分,返回一个新数组类似于string中的substring
3. push(), pop()
push: 压入到尾部
pop:弹出尾部的一个元素
4. unshift (),shift()头部
unshift:压入到头部
shift:弹出头部的一个元素
5. 排序sort()
["B","C","A"]
arr.sort()
["A","B","C"]
6.元素反转reverse()
["A","B","C"]
arr.reverse()
["C","B","A"]
7.concat()
注意:conat()并没有修改数组,只是会返回一个新的数组
arr.join('-')
"C-B-A"
10.多维数组
对象
若干个键值对
var 对象名={
属性名:属性值,
属性名:属性值,
属性名:属性值
}
//定义了一个person对象,它有四个属性
var person ={
name:"sf"
age:18,
email:"12345678@qq.com",
score:0
}
js对象,{。。。}表示一个对象,键值对描述属性xxxx:xxxx,
多个属性之间使用逗号隔开,最后一个属性不加逗号!
对象赋值
person.name="sf"
"sf"
person.name
"sf"
使用一个不存在的对象属性,不会报错!undefind
person.haha
undefined
动态的删减属性,通过delete删除对象的属性
delete person.name
true
person
动态的添加,直接给新的属性添加值即可
person.haha="haha"
"haha"
person
判断属性值是否在这个对象中!xxxx in xxx!
'age' in person
true
判断一个属性是否是这个对象自身拥有的
person.hasOwnproperty('toString')
false
person.hasOwnProperty('age')
true
流程控制
if判断
var age=3;
if(age>3){
alert("haha");
}else if(age<5){
alert("kuwa~");
}else{
alert("kuwa");
}while循环,避免程序死循环
while(age<100){
age=age+1;
console.log(age)
}for 循环
for(let i=0;i<100;i++){
console.log(i)
}forEach循环
var age =[1,2,4,5,6,7,8,8,8,13,21];
age.forEach(function(value){
console.log(value)
})for ..in
//for(var index in object){}
for(var num in age){
if (age.hasOwnProperty(num)){
console.log("存在")
console.log(age[num])
}
}