javascript语言入门教程,javascript语法简明手册

大家好,小编来为大家解答以下问题,javascript语言入门教程,javascript语法简明手册,现在让我们一起来看看吧!


对于在浏览器上执行的JS来说,可以视为三部分
1.JS核心语法
2.DOM API:浏览器提供的一组,操作页面元素的API
3.BOM API: 浏览器提供的一组,操作浏览器窗口的API

前置知识

JavaScript书写形式

行内式

直接嵌入到 html 元素内部

<body>
    <button onclick="alert('hello')">这是一个按钮 </button>
</body>

在这里插入图片描述

内嵌式

写到 标签中

<body>
   <>alert('hello')</>
</body>

在这里插入图片描述

外部式

把JS写到一个单独的.js文件中,在html里面通过来引入

<body>
   < src="app.js"></>
</body>
alert('hello app.js')

输出 (console.log)

会把日志给输出到控制台中,此处的控制台不是系统的黑框框,而是浏览器自己的控制台(在开发者工具中可以看到)

<body>
   <> 
    console.log('hello');
    </>
</body>

在这里插入图片描述
如果JS代码中,出现一些语法错误,或者运行时错误,也会在控制台中显示出来

<body>
   <> 
    console.log('hello');
    consol.log('hello');
    </>
</body>

在这里插入图片描述

基础语法

变量

定义变量
var 变量名=初始值;

<> 
       var num=10;//创建了一个名字为num的,数字类型的变量
       var s='heello';//创建了一个名字为s的,字符串类型的变量
       var arr=[];//创建了一个名字为arr的,数组类型的变量
    
    </>

不管创建的变量是什么类型,此时统一使用var这个关键字来表示,至于变量是什么类型,取决于初始化的值,是什么类型

变量的类型,可以在运行过程中,随着赋值而发生改变,这种行为,称为“动态类型”(运行时)。像Java这样的语言,不支持这用运行时类型发生改变,这种行为称为“静态类型”Python解释器的安装步骤

 var a=10;
  a='hello';
  console.log(a);
       

在这里插入图片描述
现在更倾向于使用let来代替var

基本数据类型

JS 中内置的几种类型

number: 数字

不区分整数和小数.
特殊的数字值NAN

 console.log('hello'-10);

在这里插入图片描述

boolean:布尔类型

true 真, false 假.
在JS中,布尔类型会被当成0 和1 来处理

let a=true;
console.log(a+3);

在这里插入图片描述

这种被称为“隐式类型转换”。
如果一个编程语言,越支持隐式类型转换,认为类型越弱
如果一个编程语言越不支持隐式类型转换,认为类型越强

string: 字符串类型

🎀如果字符串本身就包含了引号,这个时候就可以通过单双引号灵活搭配的形式,来避免使用转义字符

let s='my name is "hhh" ';
console.log(s);
 let s2="my name is ' mmmm' ";
 console.log(s2);
      

在这里插入图片描述
🎀如果字符串里既有单引号又有双引号,就要使用转义字符

let s3="my 'name' is \"gggg\" ";
console.log(s3);

在这里插入图片描述
🎀求长度
通过length属性

let s="hello world";
console.log(s.length);

在这里插入图片描述
🎀字符串拼接
直接使用 + 来拼接

let a="hello";
let b=20;
console.log(a+b);

在这里插入图片描述

undefined:未定义数据类型

只有唯一的值 undefined. 表示未定义的值.(非法情况)
一个未被初始化变量的值就是undefined

let a;
console.log(a);

在这里插入图片描述

null:空值类型

只有唯一的值 null. 表示空值.(合法情况)

null表示当前这个值属于“没有值”这个概念。

运算符

JavaScript 中的运算符和 Java 用法基本相同。
(1)JS中比较相等有两种

  • ==
    !=
    只是比较两个变量的值,而不是比较两个变量的类型。如果两个变量能够通过隐式类型转换,转成相同的值,此时就认为,也是相等的。
  • ===
    !==
    既要比较变量的值,也要比较变量的类型。如果类型不相同,就认为不相等
let a=10;
let b='10';
console.log(a==b);
console.log(a===b);

在这里插入图片描述
(2)JavaScript中的 &&、|| 和Java中的 && 、|| 差别挺大
Java中的 && 、|| 返回的是一个true 或false
JS中的&& 、|| 返回的是一个表达式

c=a || b
如果a的值为真(非0),此时c的值就是表达式a的值
如果a的值为假(为0),此时c的值就是表达式b的值
c=a&&b
如果a的值为假,此时c的值就是表达式a的值
如果a的值为真,此时c的值就是表达式b的值

因此衍生出了JS中的一种习惯用法
判断变量是否为“空值”,如果是空值,则赋予一个默认的值。

(3)/ 与Java中也不同

console.log(1 / 2);

在这里插入图片描述
JS不区分整数和小数,都是number

数组

数组创建
 let arr=new Array();//很少使用
 let arr2=[1,2,3,4];
 let arr3=[1,'hello',null,undefined,true];
 
打印数组

JS通过console.log就可以打印数组内容

let arr=new Array();//很少使用
let arr2=[1,2,3,4];
let arr3=[1,'hello',null,undefined,true];
console.log(arr);
console.log(arr2);
console.log(arr3);
    

在这里插入图片描述

获取数组元素

(1)通过下标来获取元素,下标从0开始计算

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

(2)当访问一个超出数组范围下标的时候,得到的结果是undefined,并不会抛出异常

let arr=[1,2,3,4];
console.log(arr[100]);
console.log(arr[-1]);

在这里插入图片描述
(3)

 let arr=[1,2,3,4];
 arr[100]=10;
 console.log(arr);
    

在这里插入图片描述
长度变成了101,然后数组的 内容,前4个元素还是1,2,3,4,下标为100的元素是10,但是中间的元素仍然是undefined。
(4)

let arr=[1,2,3,4];
arr[-1]=10;
console.log(arr);
       

在这里插入图片描述
此时-1与其说是下标,不如说是一个“属性”。并没有影响到数组长度。(类似于键值对)
(4a)

let arr=[1,2,3,4];
arr['hello']=20;
console.log(arr);

在这里插入图片描述

获取数组长度
 let arr=[1,2,3,4,5];
 console.log(arr.length);

在这里插入图片描述
JS中的length是可以改的

let arr=[1,2,3,4,5];
arr.length=3
console.log(arr.length);
console.log(arr);
arr.length=7;
console.log(arr);
    

在这里插入图片描述

往数组中新增元素

最常见的操作,push方法,能够给数组末尾追加一个元素

let arr=[];
    for(let i=0;i<10;i++){
        arr.push(i);
    }
 console.log(arr);

在这里插入图片描述

删除数组中的元素

splice方法,针对数组中的某个区间进行替换,既可以删除,也可以插入元素。

let arr=[1,2,3,4,5,6];
arr.splice(2,3,100,200,300,400);
console.log(arr);
    

在这里插入图片描述

函数

语法格式

在这里插入图片描述

<>
        function hello(){
            console.log('hello');
            
        }
        // 如果不调用函数, 则没有执行打印语句
        hello();
 </>
  • 给函数指定参数的时候,是不需要写参数类型的
<>

        function add(x,y){
            return x+y;
        }
        let result=add(10,20);
        console.log(result);
        result=add('hello','world');
        console.log(result);
        result=add('hello',10)
        console.log(result);
    </>

在这里插入图片描述

传入的实参类型是可以任意的,只要能够支持函数内部的逻辑(比如此处要求两个参数进行相加即可)

参数个数

一般要求写代码的时候,都需要调用的时候传入的实参、个数和形参匹配。但是JS并没有在语法上做出这样的限制。如果实参和形参个数不一样,也不是完全不可以!
在这里插入图片描述

<>
        function add(a,b,c,d,e,f,g){
            a=a || 0;
            b=b || 0;
            c=c || 0;
            d=d || 0;
            e=e || 0;
            f=f || 0;
            g=g || 0;
            return a+b+c+d+e+f+g;
        }
        console.log(add(10,20));
        console.log(add(10,20,30));
        console.log(add(10,20,30,40));
    </>

这里是引用

函数表达式

在JS中,函数是“一等公民”

函数,就像一个变量一样,可以被赋值给其他的变量,也可以作为另一个函数的参数,也可以 作为另一个函数的返回值。(函数和普通的变量,没有本质区别,但是函数这样的变量相比于普通变量多了个功能,可调用)

在这里插入图片描述

<>
        function hello(){
            console.log('hello');
        }
        let f=hello;
        console.log(typeof(f));//打印函数类型【function】
        f();
    </>

这里是引用

上述代码的简化:
在这里插入图片描述

作用域

在JS中,{}内部的代码,是可以访问到{}外部的变量的。

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

       }
       hello2();
  />

在这里插入图片描述

JS中的作用域,是支持“逐级向上”查找的。
当前是在hello这个函数里,尝试打印num,但是在hello中,没有num变量,于是往上找,找到了hello2这里,但是在hello2这里,也没有num,于是继续往上找,找到了全局作用域,找到了num。

  • 如果在作用域链的不同节点上,存在多个同名的变量怎么办?
    从里往外找,找到谁就是谁。
<>
       let num=10;
       function hello2(){
           let num=20;
        function hello(){
         console.log(num);
        }
        hello();

       }
       hello2();
 </>

这里是引用

对象

对象,就是一些属性和方法的集合。
在Java中,对象需要先有类,然后针对类的实例化才产生对象,Java中,类可以视为是一种自定义的类型。
JS中,对象是不依托类的。在JS中,所有的对象都是一个类型(object)

创建对象

使用 字面量 创建对象【常用】

在JS中,通过{}来创建对象。

<>
        let student={
            name:'小明',
            age:20,
            height:180,
            weight:120,

            sing:function() {
                console.log("唱歌");
            },

            jump:function() {
                console.log("跳舞");
            },
        };
        console.log(student.name);
        student.sing();
 </>

执行结果
在这里插入图片描述

每个属性和方法,其实都是通过“键值对”这样的方式来表达的,{}表示这个是对象。
后续就可以根据 student.属性名 方式来进行访问了。

使用 new Object 创建对象
<>
        var student=new Object();
        student.name="老六";
        student.height=189;
        student.sayhello=function(){
            console.log("hello");
        }
        console.log(student.name);
        student.sayhello();
    </>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值