JS基础教学

第一章 —— 认识javascript

01 —javascript的简介

        javaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript最初由NetscapeBrendan Eich设计,最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

       JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为NetscapeSun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与SelfScheme较为接近。

02—JavaScript用途

浏览器控制: JavaScript可以通过浏览器提供的API来控制和操作浏览器的行为。它可以操作浏览器的历史记录、管理Cookie、获取用户地理位置信息等。这使得开发者可以根据需要控制和优化用户与网页的交互体验。

交互性: JavaScript使得网页能够与用户进行交互。它可以处理用户的点击、鼠标移动、键盘输入等事件,并根据这些事件来改变页面的内容、样式和行为。例如,通过JavaScript可以实现表单验证、菜单下拉、图片轮播等交互效果。

动态内容: JavaScript可以通过DOM(文档对象模型)操作来动态改变网页的内容。它可以通过添加、删除或修改HTML元素、文本内容和样式来实现动态更新页面。这使得开发者可以根据用户的行为或其他条件来动态展示内容,提升用户体验等等。

综上,学好javascript就有可能在浏览器上有恒大的作为。

第二章——JS基础

01 JavaScript.html

      JS中最重要的标签为script标签,差不多都将以script标签来写

02 5个简单的出入输出语句.html 

(1)用于在浏览器中弹出警告框

        window.alert标签其中window可省

window.alert("未满18岁禁止访问");

 (2)用于在网页中输入内容

         document.write标签 

document.write("我今年刚满18岁”);

 (3)用于在控制栏输出信息

           console.log标签    (右击鼠标,点击检查,控制台)

console.log("123456")

(4) 在浏览器中弹出输入框,用户可填写信息

prompt标签

prompt("请输入年龄");

(5) 在浏览器中弹出确认框

confirm标签

confirm("你真的18岁吗?");

03 JS代码引入方式

(1)行内式
<button onclick="window.alert('别点啦')">点我呀</button>

(2)嵌入式 
 <script>
        document.write('我要点你')
 </script>

 

(3)外联式

外联式就需要新建一个js代码文件,再通过代码连接在一起

<script src="./03-外联式.js"></script>

第三章——JS基本语法

01 变量

(1)变量声明与赋值

        先声明后赋值

//声明变量
var tom;
 var lily;
//为变量赋值
 tom ='boy';
 lily ='girl';
 //输出变量的值
 console.log(tom);

   

在声明的同时直接赋值

var height =188;
console.log(height);

 (2)let声明变量

      let用于声明变量,是ES6新语法

     ES6语法树2015年推出的ECNAScript新规范

     let在声明变量时,在一个代码内,不允许有变量取一样的名字, 以一个花括号{}括起来,为一       个代码原

  变量值可以更改,以最后一次为准

console.log(boyfriend);
{let boyfriend=“徐良”;
console.log(boyfriend)}

(3)const声明变量 

     const和let一样,也是ES6的新语法

     const一般声明的是不能改变的变量,也就是常量

    cost是不允许将一个变量反复声明

    也不允许在运行的过程中变量的值

const pi=3.14;
    console.log(pi);
    const r=5;
    c=2*pi*r;
    s=pi*r*r;
    console.log(s);
    console.log(c);

(4)声明变量的区别

       1.初始化要求不同

    使用var和let声明变量是可以先不初始化,而使用const声明变量时必须初始化

        2.重复声明不同

    使用var和let声明的变量可以多次被修改,其值只与最近一次赋值一致,而使用

    const声明的变量,在整个运行过程中不能修改初始值

        3.对块级作用域的支持不同

    (使用一对花括号括起来的代码陈伟一个代码块所谓块级作用域

    就是指变量起作用的范围是当前代码块,离开当前代码块,变脸就失效了)

    使用var声明的变量支持全局作用域,使用let和const声明的变量支持块级作用域

 02—数据类型

(1)数据类型分类

 简单数据类型储存再栈内存

 复杂数据类型储存再堆内存

(2)基本数据类型

Boolean-布尔型; // true-成功或成立;false-失败或不成立   

String-字符串类型;

Number-数字类型;

Boolean-布尔类型;

Null-空类型;

Undefined-未定义类型;//表明变量未被赋值

等等

(3)数据类型检测

当不确定一个变量或值是什么类型的数据时,使用typeof操作符进行数据检查

console.log(typeof "111");   //string

console.log(typeof NaN);     //number

console.log(typeof false);   //boolean

console.log(typeof "true");  //string

console.log(typeof undefined);//undefined

console.log(typeof null);     //object

(4)数据类型转化

     

1.将数据类型转换为布尔类型

    转换时,代表空或者否定的值(空字符串、数字0、NaN、null和undefined)会转换成false

     其他转换成true

let a=Boolean("");

console.log(a);               //false

console.log(Boolean("  "));   //true

console.log(Boolean("false"));//true

console.log(Boolean(0));      //false

console.log(Boolean(undefined));//false

2.将数据类型转换为数字型数据 Number()

console.log(Number(true));     //1

console.log(Number(false));    //0

console.log(Number(undefined));//NaN

console.log(Number("123"));   //123

console.log(Number("123.a")); //NaN

3.将数据转换成字符串类型

  利用String()和toString()进行转换

var num1 = 12;

console.log(num1);     //12

var num2 = String(num1);

console.log(num2);     //12

03—运算符

(1)算术运算符

算术运算符共分为加法运算,减法运算,取模运算,幂运算,自增运算(前自增和后自增),自减运算(前自减和后自减)

加法运算(减法同理)

let a = 10;
let b = 20;
let c = a + b;
console.log(c);  //30

取模运算

let c =30;
let b =20;
console.log(c % b); //10

幂运算

console.log(2**10);   //1024

  自增运算(前)

let m = 10;
let n = 20;
m = ++n;
console.log(m);//21
console.log(n);//21

自增运算(后)

let m =10;
let n =20;
m = n++;
console.log(m);//20
console.log(n);//21

自减运算(前)

let m =10;
let n =20;
 m = --n;
console.log(m); //19
console.log(n); //19

自减运算(后)

let m =10;
let n =20; 
m = n--;
console.log(m); //20
console.log(n); //19
(2)字符串运算

隐式转换

当两个数据不同时,JS会按照规定的规则进行转换

 字符串运算

当加号遇见,字符串,加号做拼接使用

console.log(1+1);       //2
console.log(1+null);    //1
console.log(1+true);    //2
console.log(1+false);   //1

console.log("12"-0);    //12
console.log(Infinity++);//infinity
console.log(null*999);  //0
console.log(null*undefined);//NaN

console.log(12+"0");   //120
console.log(1+"1");    //11
console.log(null+"999");//null999
(3)赋值运算符

加并运算

var a=10;
var b=20;
a+=b;           //a=a+b
console.log(a); //30
console.log(b); //20
     

减并运算

var a=20;
var b=10;
a-=b;           //a=a-b
console.log(a); //10
console.log(b); //10

乘并运算

var a=10;
var b=20;
a*=b;           //a=a*b
console.log(a); //200
console.log(b); //20

除并运算

var a=20;
var b=10;
a/=b;           //a=a/b
console.log(a); //2
console.log(b); //10

取模赋值

var a=10;
var b=20;
a%=b;           //a=a%b
console.log(a); //10
console.log(b); //20
(4)比较运算符

比较运算符一般有>、<、>=、<=、=

但有几个比较特殊

var s;

        ==相等运算符

console.log( s == "s");   //false

         ===全等运算符

console.log( s === "s");    //false

         !=不相等

console.log( s != "s");     //true

        !==不全等

console.log( s !== "s");     //true

         ==在比较不同数据时,会将比较的数据转换为同一类型

         ===则不会转换

(5)逻辑运算符

  && 一假则假 

console.log(true&&true); //true
console.log(true&&false);//false

    ||   一真则真 

console.log(true||true);//true
console.log(true||false);//true

    ! 逻辑非运算符/取反运算符  真作假来假亦真

console.log(!(100<0)); //true
(6)三元表达式

三元表达式的模板:条件表达式 ? 表达式1 : 表达式2

如果条件表达式的值为true,则返回表达式1的执行结果

如果条件表达式的值为false,则返回表达式2的执行结果

//用户输入年龄,判断用户是成年还是未成年
 var year= prompt('请输入年龄');
 year >=16 ? console.log('成年') : console.log('未成年')
(7)运算符优先级

小括号>一元运算符>比较运算符>逻辑运算符(逻辑与>逻辑或)>赋值运算符

let c=!b||a&&b
console.log(c);//false

let d=a&&(c||b);
console.log(d);//false

04—控制流程

(1)选择结构

if选择结构     if(条件表达式){代码段}

let age= prompt("请输入年龄")
 console.log(age);
   if(age>=18){
      document.write("恭喜你成年啦")
    }

 if...else语句(双分支语句)   if(条件表达式){代码段1}else{代码段2}

let year=prompt("输入年份");
         if(year%100==0&&year%100 !==0||year%4==0){
             document.write("闰年");
         }else{
                 document.write("平年");
               }

if...else if...else语句

       if(条件表达式){代码段1}else if(条件表达式){代码段2}else if(条件表达式){代码段3}else if{代码段4}...else{代码段n}

 let boss=prompt("月薪")
        if(boss<4000){
             document.write("自身难保")
         }else if(boss<6000){
             document.write("请喝奶茶")
         }else if(boss<8000){
             document.write("请客吃塔塔基")
         }else{
             document.write("下馆子")
         }

 switch语句    switch(条件){case:代码段}

let subject=+prompt("请选择想要的专业:1-区块链;2-ui专业;3-土木工程;4-农业专业")
     switch(subject){
          case 1:
              document.write("恭喜你选择了好专业");
             break
          case 2:
              document.write("恭喜你要和人工智能抢饭碗") ;
             break;
          case 3:
               document.write("工地两年") ;
             default:
               document.write("输入专业")                
         }
(2)循环结构

for语句       for(初始化变量;条件表达式;操作表达式){循环体}

//计算1~100的和
let sum=0;
for(let i=1;i<=100;i++){
     sum=sum+i;
   }
 console.log(i);  //5050

while语句      while (条件表达式){循环体}

//打印1~100的数
var i=0;
while(i<=100){
console.log(i);
   i++;
 }

do...while语句    do{循环体)} while {条件表达式}

//打印1~100的数
var i=0;
 do{
   console.log(i);
     i++
  }while(
      i<=100
  )

注:循环条件和循环体要合适,不要陷入死循环当中

(3)跳转语句

break跳出循环

//白雪公主吃到第三个苹果为毒苹果 
for(var i=1;i<=5;i++){
             if(i==3){
                 console.log('白雪公主吃到了毒苹果');
                 break;
             }
             console.log("白雪公主吃了"+i+"苹果");
         }

continue跳出当前循环

 //白雪公主吃到第三个为有虫子的苹果,接着继续吃
for(var i=1;i<=5;i++){
            if(i==3){
                console.log('白雪公主吃到了有虫子苹果');
                continue;
            }
            console.log("白雪公主吃了"+i+"苹果");
        }
(4)嵌套循环

嵌套循环,顾名思义,循环里面还有一个循环

//需求“⭐⭐⭐⭐  ⭐⭐⭐⭐  ⭐⭐⭐⭐  ⭐⭐⭐⭐”
     var str="";
     for(let i=1;i<=5;i++){
        for(let j=1;j<=5;j++){
        str +="⭐";
       }
        str +='\n';
     }
        console.log(str);

var str=""
for(var i=0;i<=5;i++){
for(var j=0;j<=i;j++){
str+="⭐"
}
str+="\n"
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值