【JavaScript】JavaSricpt中实用但经常被忽略的知识点

console.log() 在浏览器中显示JS变量值。大部分浏览器可使用F12启动调试

字面量:一个常量

JS使用Unicode字符集

代码拆行:可以在为本字符串中使用”/"对代码进行换行

重新声明JavaScript变量,该变量的值不会丢失

Undefined表示变量不含有值
null可用来清空变量值  //变量的值等于null说明变量中存的是null,和undefined不同

声明新变量时,可以使用new来声明其类型
JS变量均为对象,声明一个变量时,就创建了一个新的对象

对象:
定义 var object={ key : "value" };
对象属性:键值对
对象方法:创建 methodName:function { code lines };
                访问 objectName.methodeName( )

JS变量的声明周期:从被声明开始
     局部变量在函数运行以后被删除,
     全局变量在页面关闭后被删除
     如果把值赋给尚未声明的变量,该变量将被自动作为全局变量声明

HTML中的全局变量:
     html中全局变量是window对象:所有数据变量都属于window对象

字符串
     可以使用索引位置来访问字符串中的每个字符 (个人理解内部实现可能是数组把?)
     可以使用引号,但不要与外层引号相同
     可以使用转义字符  /' /''
     字符串长度:length属性
     尽量不要创建String对象

     字符串的常用属性
constructor 返回创建字符串属性的函数
prototype 允许向对象添加属性和方法

     字符串的常用方法
charAt()、charCodeAt() 指定位置的字符、Unicode值
concat() 字符串连接
fromCharCode() 转换为Unicode值
indexOf()lastIndexOf() 返回指定字符的索引位置
localeCompare() 用本地特定顺序比较字符串
match() 正则匹配
replace() 正则替换
search() 正则检索
slice() 提取片段,返回提取部分
split() 分隔
substr() 取子串,a开始b个
substring() 去淄川,a到b
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toUpperCase()
大小写转换
toString 返回字符串对象值
trim() 移除首尾空格
valueof() 返回某个字符串对象的原始值

循环
     For/In循环,用于遍历对象的属性

ytpeof、null、undefined
typeof 数组 返回object
typeof null 返回object,null代表一个空对象引用
undefined是一个没有设置值的变量
任何变量都可通过设置undefined来清空,清空后的类型是undefined
typeof undfined      返回undefined
typeof null              返回object
null===undefined  返回false
null==undefined    返回true

JS有五种数据类型:String,number,boolean,object,function
      三种对象类型:Object、Date、Array
      两种不含值类型:null、undefined
NaN的数据类型是number

constructor属性
     返回所有JS变量的构造函数,可用constructor来区别对象是否是Array或Date类型,即判断返回的结果中是否包含字符串Array或Date

类型转换
数字转字符串 string()或Number.toString()
布尔转字符串 string()或true/false.toString()
日期转字符串 string()或Date().toString
字符串转数字 Number()空会转成0,如果是非数字会转成NaN
布尔转数字 Number(false)返回0 Number(true)返回 1
日期转数字 Number()或Date.getTime()
尝试输出对象或变量时,会自动调用对象的toString()方法

正则表达式
     / pattern / modifiers ;
modifiers:i  大小写不敏感
                 g 全局匹配,查找所有匹配而不是在第一个处停止
                 m执行多行匹配
模式:
方括号用于查找某个范围内的字符
元字符:(拥有特殊含义)
    \d 数字
    \s 空白字符
    \b 单词边界
    \uxxxx 以十六进制数xxxx规定的Unicode字符
量词:
     n+  匹配任何包含至少一个n的字符串
     n*   匹配任何包含零个或多个n的字符串
     n? 匹配任何包含零个或1个n的字符串

RegExp对象
test()    检测一个字符串是否匹配某个模式,含有匹配文本返回true,否则返回false
exec()    检索字符串中的正则表达式的匹配,返回一个数组,其中存放匹配的结果,如果未找到匹配,则返回值为null

调试
在程序中加入 debugger相当于设置断点

JSON
json对象:保存在大括号内
json数组:保存在中括号内
JSON.parse()将字符串转换为JavaScript对象
JSON.stringify()将JavaScript值转换为JSON字符串

void
指定要计算一个表达式但是不返回值
href="#" ,#包含了一个位置信息,默认的锚是#top
href="javascript:void(0)" 表示一个死链接

函数
函数不以 " ; " 结束
函数可以通过一个表达式定义
函数表达式可以存储在变量中,这样的变量可作为一个函数使用

Hoisting函数提升
JS默认将当前作用域提升到前面去
应用在变量的声明与函数的声明
自调用函数
    表达式后紧跟(),则会自动调用
    不能自动调用声明的函数
    通过添加括号,来说明它是一个函数表达式
函数可作为值、表达式使用
函数是对象、类型为function
arguments.length返回函数调用过程中接收到的参数个数
toString()方法将函数作为一个字符串返回
函数的定义作为对象的属性,称之为对象方法
函数如果用于创建新的对象,称之为对象的构造函数

函数参数
Arguments对象
   包含了函数调用的参数数组
函数参数属于局部变量
可以引用对象的值,在函数内修改对象的属性就会修改其初始值,属于全局变量

函数调用
call()和apply()是预定义的函数方法,可用于调用函数,第一个参数必须是对象本身
applay传入一个参数数组,即合并多个参数
call则作为call的参数传入
JS严格模式strict mode下,调用函数时第一个参数会成为this的值,及时该参数不是对象
非严格模式non-strict mode下,如果第一个参数是null或undefined,将使用全局对象替代
通过call()或apply()可以设置this的值,且作为已存在对象的心新方法调用

闭包
所有函数都能访问全局变量
所有函数都能访问它们上一层的作用域
嵌套函数可以访问上一层的函数变量

自我调用函数只执行一次。返回函数表达式
闭包是可访问上一次层函数作用域变量的函数,即便上一层函数已经关闭。

HTML DOM
不要再文档加载完成后使用document.write(),这会覆盖文档。(浏览器窗口会只显示你后来写的内容)
改变内容:
document.getElementById(id).innerHTML=new HTML
改变属性:
document.getElementById(id).attribute= new value
改变样式:
document.getElementById(id).style.property=new style
visibility控制元素显示或消失

EventListener
addEventListener()向指定元素添加时间句柄
    不会覆盖已存在的句柄
    可以向一个元素添加多个句柄
    可以向同一个元素添加多个同类型的时间句柄
    可以向任何DOM对象添加事件监听
    removeEventListener()移除事件的监听
语法:element.addEventListener(event.function, useCapture)
    注意这里的event不要写"on-"前缀
    useCapture 布尔值,描述事件是冒泡还是捕获
    冒泡中,内部元素事件先触发。捕获中,外部元素时间先触发。默认false冒泡,true代表捕获
IE8及之前不支持
     使用element.attachEvent(event,function);
            element.detachEvent(event,function);

DOM元素(节点)
创建新的HTML元素
    先创建,再追加
    createElement,createTextNode,appendChild,getElementById,appendChild
    删除已有
    var parent = document.getElementById("");
    var child = document.getElementById("");
    parent.removeChild(child);
    或
    var child=document.getElementById("");
    child.parentNode.removeChild(child); 


      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值