javaScript和JQuery

这篇博客详细探讨了JavaScript作为行为层语言的基础常识和语法,包括数据类型、作用域、DOM操作等内容,并介绍了jQuery这一JS封装库,讲解了其基础常识和事件处理。文章强调了JavaScript对于后端人员的重要性,并提醒开发者关注浏览器对象模型(BOM)和文档对象模型(DOM)的使用。
摘要由CSDN通过智能技术生成

JavaScript:行为层语言

基础常识和语法

一个合格的后端人员,必须 精通 JavaScript

  1. css有人说:他不算一门编程语言.后来他添加了基于node.js的,less机制,相当于:成为了css预处理器


  2. JavaScript(以下简称js),是一门"弱类型脚本语言"

  3. 有个Ant-Design网站,是阿里的一个前端框架网站,现在使用的比较好


  4. 可以去看一下ECMAScript(以下简称es)和js的历史

  5. js只是当时想借java的名气,所以"取个好名字很重要"


用java语法来写js,一定不会错

  1. es已经发展到了es6,但是现在有的浏览器还是仅支持到es5.这就导致:开发环境与线上环境不一致

  2. 我们一般需要设置idea的es6版本

    es6

  3. js的专属标签是必须是双标签

  4. js中的所有变量都是var


  5. 注释和java一样:请尽量在写文字前加上空格,因为es编译时,不加空格,有可能 会报错

  6. javaDoc注释会自动加上空格


  7. 代码每行结束,尽量加上 ; 号

<head>
  <meta charset="UTF-8">
  <title>Title</title>

  <script>
    /**
     * hello  world
     */  
    var name = "张三";
      
    console.log(name);//控制台输出:张三
      
  </script>
  
</head>
  1. 我们可以在控制台,进行断点,调试

    控制台


数据类型

  1. js的大部分数字都归于number类型:typeof age = number

  2. NaN:not a number不是一个数字:typeof NaN = number

  3. Infinity(无限大),也是一个number,首字母大写


  4. ==号是equals,=必须类型与值全部相等.坚持不用

  5. js不会帮我们做自动类型转换

  6. isNaN(NaN) === true


  7. **用Math类来做浮点值运算: Math.ceil(17.8) **

  8. undifined未定义: typeof 长歌 == undifined


  9. 数组,集合不用纠结数据类型var array = [13,“num”,null,undifined]

  10. 找不到数据就报undifined:array[1000]


  1. 对象是{}理解成Map集合var Person = { name : “长歌”, age : 18, sex : ‘女’};,数据[]


  2. ‘use strict’:严格检查模式,预防因为代码随意性,产生问题.要求idea设置为es6,必须放在第一行

  3. 不写var或者let就是全局变量,let是局部变量,两者作用域不一样:for (let i = 0; i < 10; i++) {

  4. 反引号mes = ‘里面写多行字符串’,这个符号在tab键上面:name = 偶题 - 百度汉语 作者:杜甫 文章千古事,得失寸心知。 作者皆殊列,名声岂浪垂。 骚人嗟不见,汉道盛于斯。 前辈飞腾入;

  5. name = ${age}`;取值模板字符串,但是字符串有不可变特性 --> String[1] = s


  6. 数组可以给长度赋值var array = [14,56],array.length = 10

  7. slice()截取数组,push(),pop(),unshift压入头,shift弹出头,concat([])拼接,但不修改原数组.join(‘-’)连接

  8. array.slice(2) , array.pop() 从头弹出, array.push(40) 从头加入 array.unshift(30)


操作对象

  1. **动态操作对象(增删): delete person.age;person.age = “18” **

  2. js的方法叫做函数


  3. 判断属性是否在内’age’ in person,对象的键全部是字符串

  4. person.hasOwnProperty(“toString”) -> false

  5. 遍历:数组foreach,返回键for in :person[value]用键获得值,普通对象不能用for of直接打印值,集合也能用


集合

  1. Map([[‘key’,‘value’],[…]]).set(‘key’,value)与Set.get()
  2. 是否包含元素has(0)

函数

绝对值函数:function abs(x)

函数赋值时数据类型要对等,如a.click(属性) = abs;(以属性模式赋值)

  1. **浏览器解析时,会在每一行最后加 ; 号; **

  2. 没有return语句,最后会返回undefined

  3. 一切有成本的东西只有了解就行(能看懂代码)


  4. typeof x != ‘number’ throw ‘message’ 自定义异常

  5. js里面写字符串不会出错,不写成字符串可能会有错


参数列表

  1. 函数默认是参数列表,存在arguments数组中:arguments[2]
  2. es6新特性rest:获取所有未直接定义的参数:abs(a,b,…rest).rest[2]
  3. 打印rest

作用域

  1. 函数内的var,函数外不能调用,想要实现,去研究闭包

  2. 闭包就是:在函数外,访问函数内的属性,避免变量被污染

  3. 如一个业务:让num每秒加1

  4. var num是全局变量,但是在函数内,我们就用内部函数操作它

  5. 单独运行computer()是只是让这个函数初始化一次,赋值给test后,num才真正变成全局变量

function computer(){
   
     var num = 0;
     function innerTest(){
   
         console.log(num++);
     }
     //内部函数运行
     return innerTest;
 }
 var test = computer(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloses

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值