目录
1.输入输出
2.语法
2.1变量的使用
1.用法
2.动态类型
2.2基本数据类型
1.number
2.string字符串类型
3.boolean布尔类型
4undefined未定义数据类型
5null空值类型
2.3运算符
2.4条件语句,循环语句
2.6数组
1.创建数组
2.获取元素
3.新增数组元素
2.7函数
1.语法格式
2形参个数
3函数表达式
4作用域
5作用域链
2.8对象
1. 使用 字面量 创建对象 [常用]
2. 使用 new Object 创建对象
3. 使用 构造函数 创建对象
1.prompt弹出输入框
2.alert弹出输出框
3.consloe.log向控制台输入日志
var 变量名=初始值
a本来是数字类型,赋值时可以赋值其他类型
变量类型和在运行过程中,随着赋值改变
var a=10;
a=20;
console.log(a);
JS 中内置的几种类型
字符串字面值需要使用引号引起来, 单引号双引号均可
如果字符串中本来已经包含引号,可以用单双引号搭配用
也可以用转义字符
let s1="my 'name' is \"mu qing\" ";
console.log(s1);
使用 String 的 length 属性即可 长度单位是字符 一个汉字,一个字符
let s2='h w';
console.log(s2.length);
let s3='hh';
console.log(s3.length);
let s4='你好';
console.log(s4.length);
+表示拼接
至少要有一个是字符串
boolean 参与运算时当做 1 和 0 来看待.
如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型
null 表示当前的变量是一个 "空值".
== != 比较值,不比较类型,能通过隐式转换也算相同
=== !== 比较值和类型
&&和||返回的是表达式
&&:一假则假
||:一真则真
c=a||b
如果a的值为真(非0),c的值就是表达式a的值
如果a的值为假(为0),b的值就是表达式a的值
与java类型
用new创建
var arr=new Array();
用字面量创建
var arr=[];
var arr2=[1,2,'haha',false];
var arr=[1,2,3];
console.log(arr[0]);
如果超出范围读取会返回undefined
console.log(arr[10]);//undefined
1.修改length新增
var arr=[1,2];
arr.length=6;
2.下标新增
var arr=[1.2];
arr[10]=10;
3.push追加元素
var arr=[1,2,3];
var newArr=[];
newArr.push(arr[2]);
console.log(newArr);
4.删除元素
var arr=[9,5,2,7];
arr.splice(2,1);
/ 创建函数/函数声明/函数定义
function 函数名(形参列表) { //形参列表,不用写类型
函数体
return 返回值;
}
// 函数调用
函数名(实参列表) // 不考虑返回值
返回值 = 函数名(实参列表) // 考虑返回值
// 调用函数
hello();
// 定义函数
function hello() {
console.log("hello");
}
1. 如果实参个数比形参个数多, 则多出的参数不参与函数运算
2. 如果实参个数比形参个数少, 则此时多出来的形参值为 undefined
let f=function (){
console.log('hello');
}
此时形如 function() { } 这样的写法定义了一个匿名函数, 然后将这个匿名函数用一个变量来表示.(lamdba表达式)后面就可以通过这个 f变量来调用函数了.
内部函数可以访问外部函数的变量. 采取的是链式查找的方式. 从内到外依次进行查找.
如果在不同作用域链有不同节点,有同名变量,从里往外找,找到谁是谁(最近的)
let num=10;
function hello2(){
function hello(){
console.log(sum);
}
hello();
}
hello2();
在hello这个函数中,打印sum,在hello中没有sum变量,往上级找,hello2中没有num变量,继续找,到全局作用域,找到了num
var a = {}; // 创建了一个空的对象
var student = {
name: 'mq',
height: 175,
weight: 170,
sayHello: function() {
console.log("hello");
}
};
使用对象的属性和方法:
// 1. 使用 . 成员访问运算符来访问属性 `.` 可以理解成 "的"
console.log(student.name);
// 2. 调用方法
student.sayHello();
用new Obiect()创建
通过对象名.属性来新增属性
var student = new Object(); // 和创建数组类似
student.name = "mq";
student.height = 175;
student['weight'] = 170;
student.sayHello = function () {
console.log("hello");
}
构造方法可以创建多个对象
function 构造函数名(形参) {
this.属性 = 值;
this.方法 = function...
}
var obj = new 构造函数名(实参);
function student(name,age){
this.name=name;
this.age=age;
this.do=function(){
console.log(sound);
}
}
var zs=new student('zhangsan',1,'sing');
zs.do();