js基础学习

简介: JavaScript 是一门跨平台、面向对象的脚本语言,它能使网页可交互(例如拥有复杂的动画,可点击的按钮,通俗的菜单等)。另外还有高级的服务端 Javascript 版本,例如 Node.js,它可以让你在网页上添加更多功能,不仅仅是下载文件(例如在多台电脑之间的协同合作)。在宿主环境(例如 web 浏览器)中,JavaScript 能够通过其所连接的环境提供的编程接口进行控制。

今天来复习一下js基础,也写给刚入门的同学

前言

JavaScript 是一门跨平台、面向对象的脚本语言,它能使网页可交互(例如拥有复杂的动画,可点击的按钮,通俗的菜单等)。另外还有高级的服务端 Javascript 版本,例如 Node.js,它可以让你在网页上添加更多功能,不仅仅是下载文件(例如在多台电脑之间的协同合作)。在宿主环境(例如 web 浏览器)中,JavaScript 能够通过其所连接的环境提供的编程接口进行控制。

JavaScript 借鉴了 Java 的大部分语法,但同时也受到 _Awk,Perl_ 和 _Python_的影响。

与 Java 和c++相比,Javascript 是一门形式自由的语言。你不必声明所有的变量,类和方法。你不必关心方法是否是公有、私有或者受保护的,也不需要实现接口。

JavaScript 内置了一些对象的标准库,比如数组(Array),日期(Date),数学(Math)和一套核心语句,包括运算符、流程控制符以及声明方式等

一、 JavaScript变量

JavaScript 变量是 存储数据值的容器

1.1 变量的声明(创建变量的方式)

通过var 变量名的方式声明
var name
  • 变量必须以字母开头
  • 变量也能以 $ 和 _ 符号开头
  • 变量名称对大小写敏感

1.11 赋值方式

通过=赋值
name= 'xxx'

也可以在变量声明时对齐赋值

var name='xxx'

还可以通过变量对变量赋值

var x=1
var y=x+1

1.2 变量提升

你可以先使用变量稍后再声明变量而不会引发异常。这一概念称为变量提升;

    console.log(x)
    var x

1.3 JavaScript数据类型

  • 七种基本数据类型:

    • 布尔值(Boolean),有 2 个值分别是:true 和 false.
    • null,一个表明 null 值的特殊关键字。在布尔运算中被认为是flase
    • undefined,和 null 一样是一个特殊的关键字,undefined 表示变量未赋值时的属性。
    • 数字(Number),整数或浮点数。
    • 任意精度的整数 (BigInt) ,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。
    • 字符串(String),字符串是一串表示文本值的字符序列。
    • 代表(Symbol)( 在 ECMAScript 6 中新添加的类型).。一种实例是唯一且不可改变的数据类型。

二、 JavaScript基础语法

包括了赋值,比较,算数,位运算,逻辑,字符串,三元等等。

1.1 算数运算符

运算符 用途 例子
+ 加法 x=y+2
- 减法 x=y-2
* 乘法 x=y*2
/ 除法 x=y/2
% 取余 x=y%2
++ 自增 x=++y x=y++
-- 自减 x=--y x=y--
** 指数 x=y**3

1.2 赋值运算符

运算符 例子
= x=y
+= x+=y
-= x-=y
*= x*=y
/= x/=y
%= x%=y

1.3比较运算符

作用: 比较它的操作数并返回一个基于表达式是否为真的逻辑值.

在多数情况下,如果两个操作数不是相同的类型,JavaScript 会尝试转换它们为恰当的类型来比较。

1.4逻辑运算符

运算符 范例 描述
逻辑与 expr1 && expr2 当操作数都为 true 时返回 true;否则返回 false.
逻辑或 `expr1 expr2` 当任何一个操作数为 true 则返回 true;如果操作数都是 false 则返回 false。
逻辑非 !expr 如果操作数能够转换为 true 则返回 false;否则返回 true。

1.5条件(三元)运算符

条件 ? 值 1 : 值 2

var status = (age >= 18) ? "adult" : "minor";

当 age 大于等于 18 的时候,将“adult”赋值给 status;否则将“minor”赋值给 status。

2.语句

2.1 条件语句

· if 语句

只有当指定条件为 true 时,该语句才会执行代码。

if ()
{}
else
{}


if ()
{}
else if ()
{}
else
{}

2.2 switch 语句

switch(n)
{
    case 1:
        执行代码块 1
        break;
    case 2:
        执行代码块 2
        break;
    default:
        与 case 1 和 case 2 不同时执行的代码
}

2.3 for循环

一个 for 循环会一直重复执行,直到指定的循环条件为 false。JavaScript 的 for 循环,和 Java、C 的 for 循环,是很相似的。一个 for 语句是这个样子的:

for(i=0;i<9;i++)
    {
        console.log(i)
    }

2.3.1 for循环扩展

for...in 循环遍历的结果是数组元素的下标,而 for...of 遍历的结果是元素的值


let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
  console.log(i); // 输出 "0", "1", "2", "foo"
}

for (let i of arr) {
  console.log(i); // 输出 "3", "5", "7"
}

2.4 while循环

一个 while 语句只要指定的条件求值为真(true)就会一直执行它的语句块。

while (条件)
{语句块}

2.5 do...while循环

该循环至少会执行一次,即使条件为 false 它也会执行一次,因为代码块会在条件被测试前执行

do
{}
while ();

2.6 跳出循环

  • break 语句
  • 使用 break 语句来终止循环,switch,或者是链接到 label 语句。
for(i=0;i<9;i++)
    {
        console.log(i);
        if(i == 3)
            {
                break;
            }
    }

有些时候我们会循环嵌套循环,可以使用label去标识一个循环,后通过break跳出循环

var num = 0;
outPoint:
for(var i = 0; i < 10; i++) {
  for(var j = 0; j < 10; j++) {
    if(i == 5 && j == 5) {
      break outPoint;
    }
    num++;
  }
}
console.log(num)

3. 函数

3.1 函数的声明

function square(number) {
  return number * number;
}

3.1 函数表达式

虽然上面的函数声明在语法上是一个语句,但函数也可以由函数表达式创建。这样的函数可以是匿名的;它不必有一个名称。

const square = function(number) { return number * number; };
var x = square(4); 

然而,函数表达式也可以提供函数名,并且可以用于在函数内部代指其本身。

const factorial = function fac(n) {return n<2 ? 1 : n*fac(n-1)};
console.log(factorial(3));

3.2 调用函数

定义一个函数并不会自动的执行它。调用函数才会以给定的参数真正执行这些动作。

函数一定要处于调用它们的域中,但是函数的声明可以被提升 (出现在调用语句之后)

square(8)
function square(number) {
  return number * number;
}
函数提升仅适用于函数声明,而不适用于函数表达式

函数可以被递归,就是说函数可以调用其本身

3.3函数作用域

在函数内定义的变量不能在函数之外的任何地方访问,因为变量仅仅在该函数的域的内部有定义。

var num1 = 20
function somenum() {
var num2=30
}
相关文章
|
21天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的英语学习交流平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的英语学习交流平台附带文章和源代码部署视频讲解等
26 7
|
21天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的编程语言在线学习平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的编程语言在线学习平台附带文章和源代码部署视频讲解等
23 4
|
24天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的云端学习系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的云端学习系统附带文章和源代码部署视频讲解等
30 4
|
11天前
|
JavaScript 前端开发 容器
JavaScript函数学习
JavaScript函数学习
12 1
|
15天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的线上学习资源智能推荐系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的线上学习资源智能推荐系统附带文章源码部署视频讲解等
22 5
|
24天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的在线学习系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的在线学习系统附带文章和源代码部署视频讲解等
169 10
|
17天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的在线互动学习网站附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的在线互动学习网站附带文章源码部署视频讲解等
14 1
|
23天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的精品课程在线学习系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的精品课程在线学习系统附带文章和源代码部署视频讲解等
25 8
|
3天前
|
JavaScript 前端开发
技术经验分享:JavaScript基础学习2
技术经验分享:JavaScript基础学习2
|
8天前
|
JavaScript 前端开发 索引
学习了解JS的classlist
学习了解JS的classlist
6 0