JavaScript基础(一)

1.JavaScript是什么

        JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言(Script 是脚本的意思),脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行,不同于java需要编译后在执行,现在也可以基于 Node.js 技术进行服务器端编程

2.JavaScript应用在哪些地方?

        表单动态校验(密码强度检测)( JS 产生最初的目的 )

        网页特效

        服务端开发(Node.js)

        桌面程序(Electron)

        App(Cordova)

        控制硬件-物联网(Ruff)

        游戏开发(cocos2d-js)

3.JS组成

        (1)ECMAScript

        ECMAScript是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言 在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是ECMAScript 语言的实现和扩展。ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

(2)DOM——文档对象模型

        文档对象模型(DocumentObject Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标 准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)

(3)BOM——浏览器对象模型

        浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、 获取分辨率等。       

 4.JS重点知识点

       (1)基本数据类型

        不同于java,js只有五种数据类型(number,String,boolean,null,Undefined),number包含了整数类型和浮点数类型

        Null和Undefined有什么区别吗?

  • null表示一个对象被定义了,但存放了空指针,转换为数值时为0。
  • undefined表示声明的变量未初始化,转换为数值时为NAN。

        (2)JS中变量的作用域是什么?

变量的作用域是程序中定义它的区域,JS变量只有两个作用域:

  • 全局变量 :全局变量具有全局作用域,这意味着它在JS代码中的任何位置都可见
  • 局部变量 :局部变量仅在定义它的函数中可见,函数参数始终是该函数的本地参数。

        (3)let const var 有什么区别(重点)

区别一:作用域
        用 var 声明的变量的作用域是它当前的执行上下文,即如果是在任何函数外面,则是全局执行上下文,如果在函数里面,则是当前函数执行上下文。换句话说,var 声明的变量的作用域只能是全局或者整个函数块的。
        let 声明的变量的作用域则是它当前所处代码块,即它的作用域既可以是全局或者整个函数块,也可以是 if、while、switch等用{}限定的代码块。另外,var 和 let 的作用域规则都是一样的,其声明的变量只在其声明的块或子块中可用。
区别二:定义变量
        var定义变量时,存在变量的默认提升功能,而let和const没有
        var 定义变量是可以重复定义,而let和const不可以重复定义(同时定义一个变量时)
        var定义变量时会自动挂载在Windows对象上,而let和const不会
        let存在暂时死去问题
区别三:let与const区别
        const声明的是一个只读变量,声明之后不允许改变其值,因此const一旦声明必须初始化,否则会报错


 var可以重复赋值

<body>
    <script>
        var s=20;
        if(true){
            var s=10;
            console.log(s);//10
        }
        console.log(s);//10
    </script>
</body>
</html>

let定义的值只会存在于作用域范围内 

<body>
    <script>
        var s=20;
        if(true){
            var s=10;
            console.log(s);//10
        }
        console.log(s);//10
    </script>
</body>
</html>

var会自动提升为全局变量,let和const不会

<body>
    <script>
        if(true){
            var s=10;
        }
        console.log(s);//10
    </script>
</body>

innerText和innerHTML的区别

        获取内容时的区别: innerText会去除空格和换行,而innerHTML会保留空格和换行 设置内容时的区别: innerText不会识别html,而innerHTML会识别

<body>
<div></div>
<p>
我是文字
<span>123</span>
</p>
<script>
// innerText 和 innerHTML的区别
// 1. innerText 不识别html标签 非标准 去除空格和换行
var div = document.querySelector('div');
// div.innerText = '<strong>今天是:</strong> 2019';
// 2. innerHTML 识别html标签 W3C标准 保留空格和换行的
div.innerHTML = '<strong>今天是:</strong> 2019';
// 这两个属性是可读写的 可以获取元素里面的内容
var p = document.querySelector('p');
console.log(p.innerText);
console.log(p.innerHTML);
</script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值