# jsdemo206 **Repository Path**: nieps/jsdemo206 ## Basic Information - **Project Name**: jsdemo206 - **Description**: 206 java js 案例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-13 - **Last Updated**: 2023-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaScript笔记 js vbscript java j++ RIA 富网络应用 flex ----- flash sliverligth typescript ## js路径 分类: * 相对路径 > ./ 代表当前目录 默认可以省略 > > ../ 代表上一级目录 > > ../../ 上一级的上一级目录 * 绝对路径 一个完整的地址 * 基于文件系统的一个绝对地址 * 一个网络地址 ## 编码 什么是编码 ? a------转换为计算机能够识别的编码 ----- 97 * ascii编码 采用1个字节来存储 > 计算机最小存储单位是 位 bit 一位只能存储两个值 0 或1 > > 1字节===8位 2的8次方 256 > > a---97 b---98 > > 在中国,存储汉字 需要类似的编码机制? > > 2000常用汉字 > > 采用2字节编码 > > 2字节===16位 === 66536 > > gb2312 -----常用 的中文 > > gbk----是对gb2312的扩展 包含不常见的生僻字 > > 日本 ? > > ..... > > 统一编码: unicode编码 万国码 采用3个字节 24位 > > utf-8 ​ ## 标识符 凡是自己可以命名的,都称为标识符 > a ----97 (十进制表示法) > > \\u0061 ----转换成十进制 ------- 6*16的次一次方 + 1 ===97 总结: 1. 尽量使用 字母 数字 下划线 $ 的组成 2. 使用 字母 下划线 $开头 ## 直接量 直接量 、字面量 、常量 值 是一个具体的值 ~~~javascript "hello" 字符串类型的直接量 23 数字直接量 {} 对象直接量 function(){} 函数直接量 [] ~~~ ## var 声明变量语法 : ~~~javascript var 变量名 ; //声明变量 没有值 var 变量名=值; //声明变量并赋值 var 变量1,变量2=2,...; //声明多个变量 ~~~ ![image-20230213162007233](assets/image-20230213162007233.png) ## 作用域 * 全局作用域 * 局部作用域 闭包: 闭包就是能够读取其他函数内部变量的函数 let声明的变量是否有提升作用? ## 常量 存储常量值(直接量)的变量 服务器地址 一般是初始化后 不改变的 ## 数据类型 ### 基本类型 * 字符串 string 使用"" 或 ''引用起来 * 数字 number * 布尔类型 true/false * null 空对象 * undefined * symbol 独一无二 ### 引用类型 * 对象 Object * 数组 [] * 函数 存储: 栈空间 堆空间 基本类型: ![image-20230214094540705](assets/image-20230214094540705.png) 引用类型 ![image-20230214104110424](assets/image-20230214104110424.png) ## 数字类型 ![image-20230214113246368](assets/image-20230214113246368.png) ## 字符串 ![image-20230215085542332](assets/image-20230215085542332.png) ## 对象 ![image-20230215092832779](assets/image-20230215092832779.png) xml格式 dtd ---- schema ~~~xml 张三 age 1358887 ~~~ xml解析技术 json对象: ~~~json { name:"张三", age:12, mobile:"123111" } ~~~ ## 命名规则 驼峰命名法 * 大驼峰命名法 名称由多个单词构成,每个单词的首字母大写 适用于 构造函数 类名 * 小驼峰命名法 名称由多个单词构成 第一个单词首字母小写,其余单词首字母大写 适用于 变量名,函数名... ~~~javascript new Vue({}) ~~~ ## 箭头函数 ~~~javascript (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // 等价于: => { return expression; } // 如果只有一个参数,圆括号是可选的: (singleParam) => { statements } singleParam => { statements } // 无参数的函数需要使用圆括号: () => { statements } // 返回对象字面量时应当用圆括号将其包起来: params => ({foo: bar}) // 支持 Rest parameters 和 default parameters: (param1, param2, ...rest) => { statements } // 使用...rest 代表剩余参数 (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements } //支付默认值 ~~~ ## this * 在函数中 this指向 全局变量window * 在方法中 this指向对象本身 * 在箭头函数中 箭头函数(词法作用域)会默认帮我们绑定外层 this 的值,所以在箭头函数中 this 的值和外层的 this 是一样的。 ## 解释执行 编译执行 解释执行 ,按照由而下 执行 ,不需要经过编译 c/c++ 编译成汇编语言 java 编译成字节码文件 .class ## 数组 队列: FIFO 先进先出 (排队购买火车票) 栈: FILO 先进后出 ## Math方法 * **`Math.ceil()`** 函数总是四舍五入并返回大于等于给定数字的最小整数。 * **`Math.floor()`** 函数总是返回小于等于一个给定数字的最大整数。 * **`Math.round()`** 函数返回一个数字四舍五入后最接近的整数。 | 行 | 空格 | * | | ---- | ---- | ---- | | 1 | 3 | 1 | | 2 | 2 | 2 | | 3 | 1 | 3 | | 4 | 0 | 4 | 1. ​ 1 3 2. ​ 2 2 3. ​ 3 1 ~~~javascript 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ..... ~~~ ## 冒泡排序 ~~~javascript let arr=[25,3,34,7,6,12]; 1. 25---3 //交换位置 arr=[3,25,34,7,6,12]; 2. 25---34 //位置不变 arr=[3,25,34,7,6,12]; 3. 34--7 //交换 arr=[3,25,7,34,6,12]; 4. 34---6 // 交换 arr=[3,25,7,6,34,12]; 5. 34--12 //交换 arr=[3,25,7,6,12,34]; //经过第一轮 最大的数字 排在最后 ~~~ 1. ​ 6 5 2. ​ 5 4 3. ​ 4 3 4. ​ 3 2 5. ​ 2 1 冒泡降序排序 ? ## DOM和BOM DOM(document object [model](https://so.csdn.net/so/search?q=model&spm=1001.2101.3001.7020)):文档对象模型,提供操作页面元素的方法和属性 BOM(browser object model);浏览器对象模型,提供一些属性和方法可以操作浏览器 > BOM的核心是Window,而Window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都以window作为其global对象。 > > Window对象包含属性:document、location、navigator、screen、history、frames 回调地狱 ## 会话存储或本地存储 * 会话存储 sessionStorage * 本地存储 localStorage ## 断点 ![image-20230214094031387](assets/image-20230214094031387.png) ## 问题 1. 常量数组 为什么可以改变数组项的值? ## 作业 1. 冒泡降序排序 2. 在页面上模拟时间 16:09:16 3. 登录时记住用户名 ## 元素属性 * innerHTML 元素内的html文本 * innerText 元素内的文本 ## 事件属性 * target 触发事件的元素 * currentTarget 绑定事件的元素 面试题: 如何防止表单重复提交 ? ## 事件默认行为