js基础笔记

​一、基本组成:(1)ESMAScript解释器(2)Dom文档对象模型Document Object Model 操作页面(3)Bom Broswer浏览器操作二、基本内容1、格式行内式、 内嵌式 、外部js文件注意:js文件的script标签中间不可以写代码js里一般使用单引号(1)标识符:不能为关键字或保留字(2)关键字:JavaScript关键字是指在JavaScript语言中有特定含义,成为JavaScript语法中一部分的那些字。(3)保留字:2、变量的使用声明变量
摘要由CSDN通过智能技术生成

基础

一、基本组成:

  1. ESMAScript解释器

  2. Dom文档对象模型Document Object Model 操作页面

  3. Bom Broswer浏览器操作

二、基本内容

2.1格式

行内式、 内嵌式 、外部js文件

注意:js文件的script标签中间不可以写代码

js里一般使用单引号

(1)标识符:不能为关键字或保留字

(2)关键字:JavaScript关键字是指在JavaScript语言中有特定含义,成为JavaScript语法中一部分的那些字。

(3)保留字:

2.2 变量的使用

  1. 声明变量 : var age;
  2. 赋值
  3. 声明加赋值=变量的初始化 var age=18;多个变量声明:一个var其余用逗号隔开。var a=1,b=2,c=3
    4. 交换两个变量值,需要添加一个临时变量
    变量类型

2.3数据类型

  1. 字符串string、number、boolean、object【对象复合型string、number、boolean、undefined由他们组成】、function(方法)、undefined(1、未定义2、为赋值)
  2. typeof识别什么类型
  3. NaN不是一个数字
  4. ==先转化相同类型再比较 ===不转换,直接比较(隐转换)加法不转换类型自动
  5. 字符串连接规则:字符串+任何类型=新字符串,“+”口诀:数值相加,字符相连
  6. 字符串拼接加强:字符串和变量拼接,变量不能添加引号(‘aaa’+age+‘岁’)

2.4转换成字符型

数字转换成字符串toString()eg:var str=num.toString()
String()console.log(String(num))
拼接字符串的方法:(num+'')

2.5转换数值型

字符串型转换数值型:parseInt(变量)得整数;parseFloat转成小数
Numeber(变量)

2.6转换为布尔型

boolean()‘’,0,NaN,null,undefined为false,其余为true

2.7算数运算符:

  1. 不能直接判断浮点数是否相等
  2. ++a前置运算符先自加后返回值,a++后置运算符先返回值子在自加
  3. 短路运算
    (1)与短路:表达式1为真,返回表达式2 ,后面不执
    (2)或短路:1为真返回1

2.8语法:分支,循环

(1)分支结构

  1. if{}else{}双分支语句
  2. if{}else if{}else{}多分支语句
  3. 三元表达式: 条件表达式?表达式1 :表达式2
  4. switch
    (2)循环结构
    for(①初始化变量,②条件表达式,④操作表达式){③循环体}循环234

1)while、 do…while

断点调试:浏览器调试台source位置

三、函数

3.1函数的定义

  • 声明
    function 函数名(){}
  • 调用函数
    函数名()

3.2 函数的实参和形参

  • 声明函数时是形参,调用时是实参
  • 先执行实参,把实参传入函数形参中执行
  • 实参个数=形参个数一致,正常输出;多,取得形参个数;少,返回NaN

3.3 函数的返回值return

  • function 函数名(){return 需要返回的值}返回给函数的调用者
  • return终止函数
    ①后面的代码不会被执行,终止函数
    ②只能返回一个值
  • 函数无返回值为undefined

3.4. arguments的使用

argument是JavaScript中的一个关键字,用于指向调调用者传入的所有参数。

  • 伪数组展示
  • 具有length属性
  • 按索引方式存储
  • 无数组方法如push()等
用者传入的所有参数。
function example(x){
   
    alert(x); //1
    alert(arguments.length); //3
    for(var i=0; i<arguments.length; i++){
   
        alert(arguments[i]);  //1,2,3   
    }      
}
example(1,2,3);

3.5. 函数可以调用

3.6. 函数声明

①funciton fn()
②var fun=function()匿名函数
作业:
判断用户输入是否为素数,(只能被1和自身整除)弹回值

function isPrimeNum(num){
   
            for (var i = 2; i < num; i++) {
   
                if (num%i==0){
   
                    return false;
                }
            }
            return true;
        }
        var res = isPrimeNum(2);
        console.log(res);

冒泡排序

  function sort(arr) {
   
        for (var i = 0; i < arr.length - 1; i++) {
   
            for (j = 0; j < arr.length - i - 1; j++) {
   
                if (arr[j] > arr[j + 1]) {
   
                    var temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }
    var arr1 = sort([5, 4, 6, 8, 9])
    console.log(arr1);
//输出年份2月份的天数
function getDay() {
   
        var year = prompt('输入年份')
        if (irRunYear(year)) {
   
            alert('当前年份是闰年2月有29天')
        } else {
   
            alert('当前年份是平年2月有28天')
        }
    }
   
getDay();
 //判断是否为闰年
    function irRunYear(year) {
   
        var flag = false;
        if (year % 4 == 0 && year % 100 == 0 || year % 400 == 0) {
   
            flag = true;
        }
        return flag;
    }

四、作用域

  1. 代码的名字在某个范围,减少命名冲突
  2. 全局作用域,局部作用域(函数内部)
  3. 作用域链(就近原则)

五、预解析

5.1. 预解析

将var,function提升到当前作用域前面
(1)变量提升,变量声明提取到作用域前面,不提升赋值
(2)函数提升,函数声明提升,不调用函数

5.2. 代码执行

从上往下执行
案例:
在这里插入图片描述结果9,9,9
9,9,报错

六、对象

6.1. 对象有属性和方法组成

6.2. 创建对象

  • 对象字面量创建:采取键值对
var obj={
   
uname:‘张三’,
age:18,
sayHi:function(){
   
console.log{
   ''};
 }
new obj=new.Object();
obj.age='19';
  • 构造函数
  • 在这里插入图片描述不需要return就可以返回数
  • 在这里插入图片描述

6.3. 使用对象

(1)对象.属性名obj.uname
(2)对象['属性名’]obj[‘age’]
(3)调用方法 对象名.方法名()

注意:
1变量和属性区别
(1)都是存放数据的
(2)变量是单独声明并赋值,使用也是直接写变量名,直接引用;
属性是在对象里面不需要声明使用是必须是对象.属性
2函数和方法同上

6.4. 遍历对象

在这里插入图片描述

七、内置对象

7.1基础

  1. 查阅MDN文档
  2. Math不是构造函数,可以直接使用,不用new

7.2. 封装自己的数学对象

在这里插入图片描述

7.3. Math方法

在这里插入图片描述
在这里插入图片描述

7.4.Math.random()

随机小数 0<=x<1
在这里插入图片描述在这里插入图片描述随机生成一个数去猜直到猜对
在这里插入图片描述

7.5 日期对象

Data()必须new

在这里插入图片描述

7.5.1 格式化日期年月日

在这里插入图片描述

7.5.2格式化日期时分秒

在这里插入图片描述

7.5.3获取日期的总的毫秒形式(时间戳)

在这里插入图片描述

7.6数组对象

7.6.1创建数组

在这里插入图片描述

7.6.2检测数组

instanceof 运算符 检测是否为数组
isArray()h5新增ie9以上支持

7.6.3添加删除数组

方法名 说明 返回
push(参数) 给数组追加新的元素 数组的长度
pop() 可删除数组最后一个元素 ,一次只能删除一个 删除的元素
unshift(参数) 给数组前添加新的元素 新数组的长度
shit() 删除第一个元素,数组长度减一无参数 返回第一个元素值

7.6.4数组排序

  1. reverse()翻转数组
  2. sort()排序
    升序方式
var arr1 =[134,7717]
arr1.sort(function(a,b) {
   
return a - b; 
);
console.log(arr1);
  1. 索引方式
    indexOf
    返回该数组的索引号
    找不到元素返回-1
  2. 数组对象
    案例:删除重复元素
    核心算法︰我们遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,我们就添加否则不添加。
    在这里插入图片描述

7.6.5数组转换成字符串

方法名 说明 返回值
concat() 连接两个或多个数组,不影响原数组 返回新数组
splice() 数组截取slice(begin,end) 返回被截取项目的新数组
splice() 数组删除splice(第几个开始,要删除个数) 返回被删除项目的新数组,可能会影响原数组

在这里插入图片描述

7.6.6基本包装类型

在这里插入图片描述

  1. 字符串的不可变性
  2. 字符串的返回位置
    indexOf(‘要查找的字符’,起始位置)
    lastIndexOf从后往前查找
  3. 根据位置返回字符
    在这里插入图片描述
    在这里插入图片描述

7.6.7字符串对象

在这里插入图片描述
案例∶核心算法
判断一个字符串’abcoefoxyozzopp’中出现次数最多的字符,并统计其次数。
核心算法:利用charAt()遍历这个字符串
把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在了就+1
遍历对象,得到最大值和该字符
小八,

 var str = 'abcoefoxyozzopp';
        var o = {
   };
        for (var i = 0; i < str.length; i++) {
   
            var chars = str.charAt(i); // chars是字符串的每一个字符
            if (o[chars]) {
    // o[ chars]得到的是属性值
                o[chars]++;
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值