2018-08-20 day06 js进阶

基本知识

  • js的特点 很多语法非常的灵活 随意
  • 兼容性问题。js、html、css浏览器翻译
  • 浏览器分为高级、低级浏览器
  • 高级:火狐、谷歌、ie8以后
  • 低级:ie8以下的浏览器

web方向:php、java、python,服务端的语言

  • 客户端===服务端
  1. js引入方式和打印方式
    四种引入方式
    (1)百度一下
    (2)
    (3)在html页面的任何位置加入 (4)在html页面的任何位置加入
  • 三种打印方式
    (1)alert弹窗打印
    (2)console.log('打印的内容')  结合浏览器控制台查看
    (3)document.write('打印的内容')  往html文档中写内容
    
  1. 函数
    • 全局变量和局部变量
      • 全局变量:直接定义的变量,全局有效
        加var和不加var都一样
      • 局部变量:函数体内定义的变量,只在函数体内有效
        • 如果局部前面有var,该变量真是一个局部变量
        • 如果局部前面没有var,该变量其实是一个全局变量,在函数调用之后,该变量即可随便使用
        • 上面知道即可,一般情况定义变量都加var
        • 如果局部和全局同名,优先使用局部变量
    • 匿名函数
      • 没有函数名的函数,需要将其赋给一个变量,然后变量按照函数的形式进行调用即可
    • 封闭空间
      • 将匿名函数用小括号括起来,然后在后面再加一个小括号调用这个匿名函数,称之为封闭空间
  2. 数组
    • 定义:array
    • 遍历:
      • 数组定义通过索引进行访问,索引从0开始
      • 但是数组也可以通过属性值追加属性和值,但是一般不这么使用
      • 遍历的时候,通过for进行遍历只能遍历索引数组,通过forin进行遍历,既可以遍历索引,又可以遍历属性
    • 字符串遍历
      • 通过索引进行遍历,索引从0开始
  3. 对象
    • 三种方式:
    • (1)构造方法
    • (2)通过官方创建
    • (3)直接写一个对象即可
      obj = {name: '王宝强', age: '36', wife: '马蓉蓉'}
      
      • 属性的引号可以添加也可以不添加,一般就不加了
      • 使用时候
      • obj['name'] 或者 obj.name
      • 在js中json格式字符串和js对象相互转化的函数
      • 将js对象转化为json字符串
          string = JSON.stringify(obj)
      
      • json字符串转化为js对象
        obj = JSON.parse(string)
        obj = eval('(' + string + ')')
        
  4. 常用对象和函数
    • parseInt
      • 将字符串转化为整型,必须以数字开头,只要碰到非数字,转化结束
      • 如果以非数字开头,转化为NaN, 两个NaN不能判断是否相等,判断是不是NaN可以使用 isNaN函数 判断是不是NaN,是返回true,不是返回false
    • parseFloat
      • 将字符串转化为浮点,必须以数字开头,碰到非数字立马结束,小数点不算
      • 如果以非数字开头,转为NaN
    • Math对象
      • abs : 绝对值函数
      • ceil : 向上取整
      • floor : 向下取整
      • max : 取最大的值,传递过个参数,找到最大值
      • min : 传递多个参数,找到最小值
      • pow : 求幂
      • random : 随机值 只能随机0-1之间的小数,如果需要随机5-10之间的数,自己实现
      • round : 四舍五入函数
    • 字符串常用函数
      • indexOf : 字符串查找函数,返回查找到的字符串的第一个字母的下标,如果找不到,返回-1 类似于python里面的find
      • lastIndexOf : 字符串查找函数,找最后一次出现的位置,找不到返回-1,类似于python里面的rfind
      • substr : 字符串的提取 substr(start, length) 从start开始提取length个字符
      • replace : 字符串替换,只能替换第一个 string.replace(old, new)
      • toLowerCase : 全部转化为小写
      • toUpperCase : 全部转化为大写
      • fromCharCode : 所有的大写 65-90 所有的小写 97-122 数字 48-57
      • split : 按照特定的字符进行切割
    • 数组常用函数
      • push : 给数组追加一个元素

      • pop : 弹出最后一个元素,只能这么做

      • shift : 弹出数组中第一个元素

      • unshift : 数组最前面添加一个元素

      • join : 字符串拼接 arr.join('*') 将列表里面所有的字符串按照 * 拼接

      • reverse : 将数组逆序

      • slice : slice(start, end) [start, end) 左闭右开

      • sort : 排序,如果都是数字,默认按照数字的ascii进行排序,如果想按照数字大小排序

        arr.sort(function (a, b) {return a > b})  从小到大排序
        
    • 日期对象常用函数
      • getDate : 获得日期

      • getDay : 获得星期几 0-6 0表示周天

      • getMonth : 0-11 当前月份减一

      • getFullYear : 得到年份

      • getHours : 得到小时 24小时进制

      • getMinutes : 得到分钟数

      • getSeconds : 得到秒数

      • getTime : 时间戳,毫秒数

      • 每一个都有对应的设置方法,自己看看

      • 创建日期对象的方式

      // 创建当前时间的时间对象
      d = new Date()
      // 根据指定的时间戳创建时间对象
      d = new Date(1534750144520)
      // 根据时间字符串创建时间对象
      d = new Date('2018/8/20 15:29:04')
      // 根据年月日时分秒值创建对象
      d = new Date(2018, 7, 20, 15, 29, 4)
      
  5. js简单演示
    • 背景切换
    • 核心:页码中有一个标签,如果想给标签添加点击事件,只需要写onclick,如果想添加其它的,添加对应事件即可。在事件的后面就要写代码,通过js的DOM操作找到指定节点,将节点的属性修改即可
  6. 获取对象
    • DOM操作,document object mxxx, 文档操作,document就是整个文档对象
    • document.getElementById 得到指定对象
    • document.getElementsByClassName 得到对象集合,符合类名要求的都可以得到
    • document.getElementsByName
    • document.getElementsByTagName 得到对象集合
  7. 常用事件
    • onmouseover :鼠标移动上去触发
    • onmouseout : 鼠标离开的时候触发
    • onmouseup : 鼠标按下松开的时候触发
    • onmousedown : 鼠标按下的时候触发
    • onmousemove : 鼠标移动的时候触发
    • onclick : 点击的时候触发
    • ondblclick : 双击的时候触发
    • 如下两个用在input框中
    • onblur : 失去焦点
    • onfocus : 获取焦点
  8. 获取、设置属性和内容
    • 获取属性
      • odiv.id
      • odiv.className
      • odiv.style.width
      • odiv.style.height
      • odiv.style.backgroundColor
        【注】在css中带杠的属性,到js中都修改为小驼峰即可
    • 获取内容
      • odiv.innerHTML 获取标签里面的所有文本内容,带标签
      • odiv.innerText 获取标签里面的纯文本内容
    • 点和中括号区别
      • 能使用点的地方肯定能使用中括号,能使用中括号的地方不一定能使用点
      • 点后面只能跟属性名
      • 中括号里面可以写属性名字符串,也可以写变量
    • 显示隐藏图片
    • this使用
    • 切换背景色
    • 表单内容控制
  9. onload函数
你的对手在看书
你的敌人在磨刀
你的闺蜜在减肥
隔壁老王在炼腰

作业

1、判断一个数是奇数还是偶数
2、给一个年份,判断是否是闰年
3、给一个数n,计算n的阶乘
4、打印99乘法表
5、计算1-1/2+1/3-1/4 … 1/100的和
6、给一个n,求1!+2!+3!+4!+5!...+n!
7、找到所有的水仙花数
8、输入三个数,找到其中最大的,用一句话写出来
9、给一个数组,找到其中最大值和最小值
10、用while打印十行十列表格,表格里面写1-100,并且隔行变色
11、自己实现随机 a, b 之间的整型
case.html






    
    
    
    case



    
1. 答案:
2. 答案:
3. 答案:
4.
5.
6. 答案:
7.
8.



9.

case.js


function case1() {
    var n = document.getElementById('1').value
    if (n) {
        if (n % 2) {
            document.getElementById('a1').innerHTML = '奇数';
        } else {
            document.getElementById('a1').innerHTML = '偶数';
        }
    }
}
function case2() {
    var n = document.getElementById('2').value
    if (n) {
        if ((!(n % 4) && n % 100) || !(n % 400)) {
            document.getElementById('a2').innerHTML = '闰年';
        } else {
            document.getElementById('a2').innerHTML = '平年';
        }
    }
}
function case3() {
    var n = document.getElementById('3').value
    result = ''
    if (n) {
        result = 1
        for (var i = n; i > 0; i--) {
            result *= i
        }
    }
    document.getElementById('a3').innerHTML = result;
}
function case4() {
    table = '
' for (var i = 1; i < 10; i++) { for (j = 1; j <= i; j++) { table += ('' + i + 'x' + j + '=' + j * i + '\t') } table += '
' } document.getElementById('a4').innerHTML = table; } function case5() { result = 0 for (var i = 1; i <= 100; i++) { result += Math.pow(-1, i - 1) * (1 / i); } document.getElementById('a5').innerHTML = result; } function case6() { var n = document.getElementById('6').value result = '' if (n) { sumall = 0 for (var i = n; i > 0; i--) { muln = 1 for (var j = 1; j <= i; j++) { muln *= j } sumall += muln } } document.getElementById('a6').innerHTML = sumall; } function case7() { result = '' for (i = 100; i < 1000; i++) { z = (i % 10); y = (i - z) % 100 / 10; x = (i - z - y * 10) / 100; if (i == (Math.pow(x, 3) + Math.pow(y, 3) + Math.pow(z, 3))) { result += i + ' ' } } document.getElementById('a7').innerHTML = result; } function case8() { var nums = document.getElementsByClassName('8') if (nums[0].value > nums[1].value && nums[0].value > nums[2].value) { document.getElementById('a8').innerHTML = nums[0].value } else if (nums[1].value > nums[0].value && nums[1].value > nums[2].value) { document.getElementById('a8').innerHTML = nums[1].value } else { document.getElementById('a8').innerHTML = nums[2].value } } function case9() { var nums = document.getElementById('9').innerHTML alert(nums.valueOf) } function case10() { } function case11() { }
2018-08-20 day06 js进阶_第1张图片
image.png

你可能感兴趣的:(2018-08-20 day06 js进阶)