JS基础知识学习笔记

解释型语言

javascriptphppython

JS诞生于1995年,网景公司员工布兰登·艾奇发明,最初叫livescript,为了曾java热度,改名为javascript。

Js是世界上使用的最多的脚本语言,特点:单线程

2011年 node.js诞生,使js能开发服务器端程序。

javascript的组成

  1. ECMAScript js的语法标准,包括变量,表达式,运算符,函数,if,for语句
  2. DOM document object model 文档对象模型,JS操作页面元素的api
  3. BOM 浏览器对象模型

ECMAScript不是一门语言,而是一个标准。规定了JS的编程语法和基础核心知识,所有浏览器厂商需要共同遵守的一套js语法工业标准。

2015年发布了ECMAScript6版本。语言能力更强,包含很多新特性,但要考虑浏览器的兼容性问题。

浏览器默认从上至下解析网页,我们将js代码写在body标签内,而不是head标签中,因为这样的js是无效的,标签元素在此时还没来得及加载,自然也无法操作元素。

JS严格区分大小写。

常量 const
变量 let
ES6之前 变量叫var,弱类型语言
静态数据:以文件的形式存储在硬盘上,比如文档,照片,视频等,永久性数据
动态数据: 内存中的数据,访问速度快

JS有8种数据类型

基本数据类型 StringNumber,Biging,Boolean,Null,undefined,Symbol
引用数据类型 Object
内置对象 FunctionArrayDateRegexpError等都属于Object类型

数据类型之间最大的区别:
基本数据类型,参数赋值的时候传数值
引用数据类型,参数赋值的时候传地址

比较字符串大小时,是一位一位进行比较,顺序从左到右。如果一样大,则比较下一位。
“56” > “123”
因此,比较两个字符串数字时,要先转换类型

==符号会做隐士转换,将不同类型的数据类型,先转为相同类型再比较。
===不仅判断值相等,还要判断类型相同

函数

  • 形参与实参的个数可以不同,调用函数时,解析器不糊检查实参的数量。
  • 如果实参个数>形参个数,则末尾的实参是多余的,不会被赋值,因为没有形参接收。
  • 如果实参个数<形参个数,则末尾的形参是多余的,值是undefined
  • 函数中不写return,也会返回undefined
  • 如果一个函数作为一个对象的属性保存,那么这个函数称为这个对象的方法。
  • 函数内的arguments是一个类数组对象,里面存储了接收到的实参列表。

递归函数

一个函数内部调用这个函数自身。

作用域

全局作用域是直接编写在script标签中的js代码,在页面打开时创建,在页面关闭时销毁。
全局作用域中有一个全局的window对象,他代表浏览器窗户,由浏览器创建,我们可以直接使用。
创建的变量都会作为window的对象属性保存。比如在全局作用域写 const a = 100; 这里的a等价于window.a;
创建的函数会作为window对象方法保存。

作用域的关系

内部作用域可以访问外部作用域变量,外部不能访问内部。
无论是在函数内,还是函数外,如果变量未经声明就赋值(意思是不加 var、let,const),这个变量是全局变量。
任何变量,如果未经声明就赋值,此变量是属于window的属性。
函数内部可以访问全局变量和局部变量
函数外部只能访问全局变量
当函数执行完毕后,本作用域的的局部变量会销毁。

闭包的表现形式

  1. 将一个函数作为另一个函数的返回值;
  2. 将函数作为实参传递给另一个函数调用

闭包的作用

  1. 延长局部变量的声明周期。
  2. 让函数外部可以操作函数内部的数据


JS基础知识学习笔记
https://yueyc.top/2025/02/27/learnJS/
作者
yueyc
发布于
2025年2月27日
许可协议