JavaScript

目录

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.输入输出

1.prompt弹出输入框

2.alert弹出输出框

3.consloe.log向控制台输入日志

2.语法

2.1变量的使用

1.用法

var 变量名=初始值

2.动态类型

a本来是数字类型,赋值时可以赋值其他类型

变量类型和在运行过程中,随着赋值改变

var a=10;
a=20;
console.log(a);

2.2基本数据类型

JS 中内置的几种类型

  • number: 数字. 不区分整数和小数.
  • boolean: true 真, false 假.
  • string: 字符串类型.
  • undefined: 只有唯一的值 undefined. 表示未定义的值.
  • null: 只有唯一的值 null. 表示空值.

1.number

  • Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.
  • -Infinity: 负无穷大, 小于任何数字. 表示数字已经超过了 JS 能表示的范围.
  • NaN: 表示当前的结果不是一个数字.

2.string字符串类型

字符串字面值需要使用引号引起来, 单引号双引号均可

如果字符串中本来已经包含引号,可以用单双引号搭配用

也可以用转义字符

 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);

+表示拼接

至少要有一个是字符串

3.boolean布尔类型

boolean 参与运算时当做 1 和 0 来看待.

4undefined未定义数据类型

如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型

5null空值类型

null 表示当前的变量是一个 "空值".

2.3运算符

== != 比较值,不比较类型,能通过隐式转换也算相同

=== !== 比较值和类型

&&和||返回的是表达式

&&:一假则假

||:一真则真

c=a||b

如果a的值为真(非0),c的值就是表达式a的值

如果a的值为假(为0),b的值就是表达式a的值

2.4条件语句,循环语句

与java类型

2.6数组

1.创建数组

用new创建

var arr=new Array();

用字面量创建

var arr=[];
var arr2=[1,2,'haha',false];

2.获取元素

var arr=[1,2,3];
console.log(arr[0]);

如果超出范围读取会返回undefined

console.log(arr[10]);//undefined

3.新增数组元素

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);

2.7函数

1.语法格式

/ 创建函数/函数声明/函数定义

function 函数名(形参列表) {  //形参列表,不用写类型

    函数体

    return 返回值;

}

// 函数调用

函数名(实参列表)           // 不考虑返回值

返回值 = 函数名(实参列表)   // 考虑返回值
  • 函数定义并不会执行函数体内容, 必须要调用才会执行. 调用几次就会执行几次.

// 调用函数

hello();

// 定义函数

function hello() {

    console.log("hello");

}

2形参个数

1. 如果实参个数比形参个数多, 则多出的参数不参与函数运算

2. 如果实参个数比形参个数少, 则此时多出来的形参值为 undefined

3函数表达式

let f=function (){
            console.log('hello');
        }

此时形如 function() { } 这样的写法定义了一个匿名函数, 然后将这个匿名函数用一个变量来表示.(lamdba表达式)后面就可以通过这个 f变量来调用函数了.

4作用域

  • 全局作用域: 定义在方法外,在整个 script 标签中, 或者单独的 js 文件中生效.
  • 局部作用域/函数作用域: 定义在方法内,在函数内部生效.

5作用域链

内部函数可以访问外部函数的变量. 采取的是链式查找的方式. 从内到外依次进行查找.

如果在不同作用域链有不同节点,有同名变量,从里往外找,找到谁是谁(最近的)

 let num=10;
        function hello2(){
            function hello(){
                console.log(sum);
                
            }
            hello();
        }
        hello2();

在hello这个函数中,打印sum,在hello中没有sum变量,往上级找,hello2中没有num变量,继续找,到全局作用域,找到了num

2.8对象

1. 使用 字面量 创建对象 [常用]

var a = {};  // 创建了一个空的对象

var student = {

    name: 'mq',

    height: 175,

    weight: 170,

    sayHello: function() {

        console.log("hello");

   }

};

使用对象的属性和方法:

// 1. 使用 . 成员访问运算符来访问属性 `.` 可以理解成 "的"

console.log(student.name);

// 2. 调用方法

student.sayHello();

2. 使用 new Object 创建对象

用new Obiect()创建

通过对象名.属性来新增属性

var student = new Object(); // 和创建数组类似

student.name = "mq";

student.height = 175;

student['weight'] = 170;

student.sayHello = function () {

    console.log("hello");

}

3. 使用 构造函数 创建对象

构造方法可以创建多个对象

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();

你可能感兴趣的:(javascript,开发语言,ecmascript)