javascript学习-基础语法

本文是关于JavaScript学习的基础笔记,涵盖了ECMAScript、WebAPIs、变量声明、数据类型(如number、string、boolean、undefined、null)、运算符(包括赋值、比较和逻辑运算)、控制结构(如if、for、while、switch)以及函数和对象的使用。还讨论了数组的操作和对象的属性与方法,以及一些内置对象如Math对象的常用方法。
摘要由CSDN通过智能技术生成

# javascript学习笔记
## js基础语法部分

1.js包括ECMAScript(js语言基础)
        Web APIs(包括DOM操作文档和BOM操作浏览器)
2.alert('')  警告
  document.write('') 用js直接在页面上显示内容
  console.log('')  在控制台输出的内容,供调试使用 ,简写log就出来了
  prompt('')  输入
3.script注释
  单行注释  Ctrl+/
  多行注释  Shift+Alt+a
4.声明变量let age ->赋值 age=18  一般let age=18
5.1.prompt输入信息
  2.用let保存信息
  3.document.write输出信息
6.变量:let
  常量:const  定义一个值之后就不能再赋值了,声明时必须赋值
7.变量命名规范:字母,数字,下划线_,$,且数字不能开头
                严格区分大小写
                驼峰命名userName
8.profitonal: =   等号两边有空格
              ,  逗号后边有空格
9.数据类型:基本数据类型:number数字型,与+-* / % 等算数运算符一起使用   出现NAN问题即not a number,意思是不是一个数字
                        string字符串型,用双引号"",单引号'',反引号``,但通常使用单引号'';+:字符串拼接,数字相加,字符相连
                                        模板字符串:`我今年${age}岁了`
                                        使用prompt和表单取出来的数是字符串型
                        Boolean布尔型,true,false
                        undefined未定义型,只声明,未赋值,let name  undefine+1 = NAN
                        null空类型,赋值了,内容为空:let obj = null  null+1 = 1,通常刚开始将对象设为null
            引用数据类型:object对象,function函数,array数组
   检测数据类型:typeof name
   类型转换:隐式转换:+将数据转为字符(字符+数字 = 字符) ,+'123' 结果为数字型的123,这个用途很重要
                       - * / 将数据转为数字型
             显式转换:1.Number('123')   将字符型转为数字型
                        Number(prompt('请输入您的年龄'))  将字符型转为数字型
                       2.parseInt('12.34px')  结果为12, 只能检测到数字
                       3.parseFloat('12.34px')  结果为12.34
10.=赋值
   ==值
   ===值和类型    用===!!!==有很多情况出现错误
   !=值不等
   !==值和类型有一个不等

   NAN===NAN —> false  NAN不等于任何,甚至它自己
11. 小数运算,不直接写0.1+0.2,因为有精度问题,结果是0.3000000000000004
    应该 0.1*10 + 0.2*10 ->3  然后3/10=0.3
12.逻辑运算符:与&& 或|| 非(取反)!
13.运算符优先级:()
                  ++,--,!
                  * / %
                  + - 
                  > < >= <=
                  == != === !==
                  先&& 后||           结果只能为false和true
                  =
                  ,
14. 顺序结构
    分支结构:
          1.if语句:1.if(条件){   //除了0,其余数字都为真;除了''(空字符串),其余字符都为真
                        执行      //范围通常用if
                    }
                  2.if(){
                        
                    }else{

                    }
                  3.if(){

                    }else if(){

                    }else if(){

                    }else{
                      
                    }
            2.三元运算符:条件 ? 符合执行 : 不符合执行
            3.switch语句:                 //值确定用switch             
                  switch(数据){           //数据===值,执行代码
                    case 值1:
                        代码1
                        break
                    case 值2:
                        代码2
                        break
                    default:
                        代码n
                        berak
                    }
    循环结构:
            1.while循环
                起始值
                while (终止条件) {
                  循环代码
                  变化量
                }
              三要素:起始值,终止条件,变化量
              循环的退出:break:直接到/script,直接退出整个for或while循环(一般用于结果已找到,不用执行后续操作)
                          continue:直接到i++,结束本次循环,继续下次循环(一般用于跳过某一项)
              无限循环:while(true){}
            2.for循环
                for(起始值;终止条件;变化量){
                  循环体
                }
              最大价值:遍历数组
              无限循环:for(;;)

              while和for的选择:明确循环次数用for
                                不明确循环次数用while
15.计时器上小于10的数补0 :00:02:18
   num = num < 10 ? 0 + num : num
16.arr1.push(arr[i])    //将arr里的树放到arr1中
17.数组中:查 arr[i]
           改 arr[i]=2
           增 arr.push(值)   往末尾加,一次能加多个
              arr.unshift(值) 从头加,一次能加多个
           删 arr.pop(空的)  删除最后一个元素,一次删一个
              arr.shift(空的)  删除第一个元素,一次删一个
           !!!arr.splice(起始位置,删除几个)   若不写删除个数,直接从规定的起始位置删到最后
18.排序 arr.sort()  默认从小到大排
   arr.sort(            //升序
    function(a,b){
      return a - b
    }
   )
   arr.sort(            //降序
    function(a,b){
      return a - b
    }
   )
19.函数的封装
      函数的命名:驼峰,前缀应为动词,
                      动词:can 是否可执行某操作
                            has 有某值
                            is  是否为某值
                            get 获取值
                            set 设置值
                            load 加载数据
  1.没有参数
    声明:  function 函数名(){
            }
    调用:  函数名()
  2.含参数
    一个参数:
    声明:  function 函数名(end){
              return ...
            }
    调用:  let re =  函数名(end的值)
    两个参数:
    声明:  function 函数名(start,end){   ---形参
              return ...
            }
    调用:  let re =  函数名(start的值,end的值)     ---实参

    若实参不给值,那么默认是undefined,undefined+undefined=NAN
    所以给为了防程序出现错误,形参一个默认值,当没有实参时,用默认值
    function 函数名( x=0,y=0){
            return
            }
    函数名(不给值)

    return 1.将函数内部的结果交给外部使用
           2.会立即结束当前函数,后面代码不会执行,所以return后面的数据不要换行写
           3.函数可以没有return,结果为undefined
           4.如果想返回多个数,就用数组装下,return [max,min]

20. 断点时:F10(眼睛箭头)不能看函数内部
            F11(向下箭头)能看函数内部
21. 函数名相同时,后面会覆盖前面的
22. 实参多:多出来的实参不参与函数,忽略
    形参多:多出来的形参为undefined
23. 具名函数:function fn(){

              }
              fn()
    匿名函数:function() {

              }
              使用方式:1.函数表达式  将匿名函数赋值给一个变量,通过变量调用
                          let fn = function(x,y){   //除了声明这里与具名函数不一样,写法其余都一样
                            return x + y              用法的不同:具名函数的调用在任何位置包括声明前和声明后都可以
                          }                                       但是匿名函数只能在声明后使用,因为let
                          fn(1,2)
                        2.立即执行函数      //为了保护数据,防止被污染
                          (1)第一种写法
                              (function(){
                                let num = 1
                              })();           //必须要有分号,因为没有相当于这个函数没结束,会报错
                              (function(x,y){   //这里的x,y是形参
                                let num = 2
                              })(1,2)            //这里的1,2是实参
                          (2)第二种写法
                              (function(形参){

                              }(实参));
24.一次性改变很多相同变量的名字:双击选中->Ctrl+D+D,加几个D选中几个变量                              
25.逻辑中断:a&&b 当a=0时,直接不执行b ;当a=1,执行b
             a||b 当a=1时,直接不执行b ;当a=
              console.log(11 || 22);  //11
              console.log(0 || 22);   //22
              console.log(11 && 22);  //22
              console.log(0 && 22);   //0
  所以函数默认值通常这样写 x = x || 0 和 y = y || 0
            如:function fn(x,y){
                  x = x || 0      //x没有实参时,传入undefined,undefined || 0 = 0 
                  y = y || 0 
                  console.log(x + y)
            }
            fn()
26. Boolean()  内容为'',0,undefined,null,NAN,false,转换为布尔值为false,其余都为true
27. null和undefined的区别:null数字化为0,undefined数字化为NAN
                          null + 3 = 3      undefined + 3 = NAN
                          null ==undefined -> true    null === undefined  ->false 
28.数组:有序的数据集合
   对象:无序的数据集合
29. 对象:let obj = {
              属性名:属性值
              方法名:函数
              'goods-name':手机
          }
    对象有属性和方法
  属性:查:obj.uname  或者 obj['goods-name'] (属性名中带有字符串的必须这样写,没有单引号的也可以这样写)
        改:obj.uname = 'lbj'
        增:obj.gender = '女' 
        删:delete obj.uname
  方法:  method : function(){

          }
          obj.method()  //调用
  遍历对象:for(let k in obj){
              console.log(k)                 //属性名
              console.log(obj[k])            //属性值
            }
30.内置对象:
      Math对象包含的方法:Math.random():0-1之间的随机数 [0-1)
                          Math.PI:=π~3.1415926
                          Math.ceil(x):向上取整
                          Math.floor(x):向下取整
                          Math.round(x):四舍五入
                          Math.max(....):最大数
                          Math.min(....):最小数
                          Math.pow(x,y):幂运算
                          Math.abs(x):绝对值
                          Math.sqrt(16):平方根 
      [0,1) Math.random()
      [0,1] Math.floor(Math.random()*2)
      [5,10]Math.floor(Math.random() * 6) + 5
      [N,M] Math.floor(Math.random() * (M-N+1)) + N
      封装为一个函数:
      function getRandom(N,M) {
            return Math.floor(Math.random() * (M-N+1)) + N
        }
      getRandom(1,10)
      随机抽取数组中的元素:
          Math.floor(Math.random()*arr.length)
31.null的类型是空对象,typeof num  = object
    所以当对象还没有值的时候,可以先这样 let obj = null
32.简单数据类型(值数据类型) :值直接放入栈中
   复杂数据类型(引用数据类型:object,function,array,date等) :值放入堆中,堆的地址放入栈中
          
   

--------------------------------------------------------------初次记录,欢迎提建议,感谢!


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值