JavaScript - Go语言中文社区

JavaScript


 <script type="text/javascript">
        alert("");
        document.write("")
        console.log("ss");</script>   javascript代码写其中
<a href="javascript:alert('点击我');">sss</a>   弹出确认菜单
<a href="javascript:;">sss</a>   //点击无变化
 <script type="text/javascript" src="index.js">
    </script>

引入外部内部不生效,需要的话再写一个标签
标识符不能以数字开头
标识符包括数字,字母,下划线,$ 并且不能是关键字和保留字
在这里插入图片描述
string中用来表示转译比如:t,n,r,"
打印斜杠需要写个斜杠转译
typeof 变量 // 查看变量类型
在这里插入图片描述
Infinity类型为Number代表无穷
NaN表示not a number 也是一个字面量,类型也是Number
js浮点数运算不精确,金额计算一般扔到服务器
其他类型.tostring转换为String
由于null和undefined不能用tostring所以用String( 值)来转换
在这里插入图片描述

在这里插入图片描述
null转换0,undefined转换Nan
parseInt()和parseFloat() // 将字符串转换比如123px可以提取123,而Number()为Nan
从左向右直到第一个不为数字为止
在这里插入图片描述
在这里插入图片描述
数字加非数字,会将非数字转换数字再运算,null和任意数字运算为null。( 字符串的加法例外)字符串加字符转是拼接
在这里插入图片描述
在这里插入图片描述
Nan不和任何值相等,包括它本身
用isNan(值)来检测
三个等号不会进行类型转换
prompt(String)相当于scanner
质数
在这里插入图片描述
console.time(String) // 计时器String是名字
consloe.timeEnd(String) // 停止
根号
在这里插入图片描述
属性值可以任意,对象,null,undefined
var obj=new Object();但一般用var obj={}
在这里插入图片描述
for (var objKey in obj) {
//增强for循环
}
这个objkey是属性,不是value
var变量的创建调用时没声明的话是undrfined
在这里插入图片描述
这个fun2是undefined,所以调用函数报错
window.a 可以指定在全局变量中找
就近原则中,在这里插入图片描述
就是undefined,不会找全局
函数中不用var都是全局变量,相当于window.变量
在这里插入图片描述
undefined和123
函数中的this为window对象,

工厂方法生产对象

在这里插入图片描述
在这里插入图片描述
构造函数
在这里插入图片描述

原型

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

alert(student.__proto__.hasOwnProperty("fun"));

在这里插入图片描述
重写tostring

var array = new Array();
array[0]=1;
alert(array[0]);

在这里插入图片描述

var returns = array.push("s", "ss");
push可以放多个元素,返回值是元素的个数
array.pop(); //弹出最后一个元素返回
array.unshift("aa"); //插入一个元素在数组的最前面
array.shift()  //删除数组最前面的一个元素

相当于数组整体后移动
ie8以上的foreach需要穿函数

array.forEach(function (value) {
      alert(value);
});

在这里插入图片描述
这个删除数组第index索引开始,一共count个的元素,删除后后面的元素会填充,数组长度会变小

var s = array.join("__");     //数组变成字符串用指定的符号隔离

在这里插入图片描述
在这里插入图片描述
返回第几天 0到6.周日到周六

var time = d.getTime();    //将时间转换为毫秒

不推荐的计时器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

alert(strings.indexOf("a"))
alert(strings.slice(0,2))  //截取,左闭右开

在这里插入图片描述
strings.split("")
在这里插入图片描述
不会影响原字符串

 reg=/a/i;
alert(reg.test("a"))     //正则表达式,i表示忽略大小写,g的话表全局,reg类型object
 reg=/a|b/i; a或者b

在这里插入图片描述

 reg=/[^a-d]/i;    //除了a到d
strings.search("/a[a-z]/")      //匹配返回索引,or返回-1

var replace = strings.replace(/[a-z]/ig, “”); //g全局匹配

reg=/(ab){3}/     //括号里的出现几次
reg=/(ab){1,3}/   //括号里的出现1到3次
reg=/a{3,}/       //三次以上
reg=/a+/          //至少一个
reg=/a*/          //0或多个
reg=/a?/         //0或1
reg=/^a$/;       //开头和结尾

表示转译,比如它本身或“”点“”等
在这里插入图片描述
前后加“b”表示这是个独立的单词
var s1 = string1.replace(/^s*|s*$/ig,""); //去除开头和结尾的空格

宿主对象

节点:构成html文档的基本单元
在这里插入图片描述
浏览器由上向下执行,js代码在上边,执行的时候页面还没加载,导致DOM对象没加载,所以在这里插入图片描述
最优的还是将js写下面,但是写上面好管理
在这里插入图片描述
对于自结束标签,没有innerHtml。用元素.属性名来获取,innweText自闭和
id,name都可以,但是class不行但可以用className获取class的值
在这里插入图片描述

 var tit = document.getElementById();
    tit.children

返回所有子节点,不包括文本节点
parentNode跟parentElement除了前者是w3c标准,后者只ie支持

当父节点的nodeType不是1,即不是element节点的话,它的parentElement就会是null

一般情况parentNode可以取代parentElement的所有功能

parentElement匹配的是parent为element的情况,而parentNode匹配的则是parent为node的情况。element是包含在node里的,它的nodeType是1
文本输入框的输入的值是value属性的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ie8支持,但是只返回一个元素,多个满足只返回第一个

 var tit = document.querySelectorAll(".box div")

用这个返回list可以解决,查询只有一个也是返回数组集合

var cityBut = document.getElementById("button");
 cityBut.onclick=function () {
          var citys = document.querySelector(".citys");
         var cityLi = document.createElement("li");
        cityLi.innerHTML="西安";
         citys.appendChild(cityLi);
  }

在这里插入图片描述
父节点.replaceChild( 新节点,参考节点)
父节点removeChild(子节点)

 citys.parentNode.removeChild("")
 this.parentNode.removeChild(this);    //没有父节点也能删掉自己

confirm(“是否删除”); boolean返回值
在这里插入图片描述
block.style.backgroundColor=“red”; // 改变元素样式,改的是内联样式
!important会在样式中有最高优先级,js也无法修改
currentstyle属性ie浏览器支持其他浏览器不支持,

 var computedStyle = getComputedStyle(block,null);
   alert(computedStyle.width)

这个ie8不支持
这两个都是只读样式


js对象属性 通过点(.) 和 方括号([]) 的不同之处
 1、点操作符: 静态的。右侧必须是一个以属性名称命名的简单标识符。属性名用一个标识符来表示。
 标识符必须直接出现再js程序中,它们不是数据类型,因此程序无法修改它们。
 2、中括号操作符: 动态的。方括号里必须是一个计算结果为字符串的表达式,
 属性名通过字符串表示。字符串是js的数据类型,再程序运行时可以修改和创建它们。
主要有以下区别:
  1、[]--可以用变量作为属性名或访问,而点方法不可以;
  2、[]中括号法--可以用数字作为属性名,而点语法不可以;
  3, [] 可以动态访问的属性名,可以在程序运行时创建和修改属性,点操作符就不行!
  4,如果属性名中包含会导致语法错误的字符,或者属性名是关键字或者保留字,也可以使用方括号表示法。
  如:(属性名是关键字或者保留字--都可以点语法不严密,不报错,写法提示有错)

解决兼容问题

function getStyle(obj,name){
    if (window.getComputedStyle(obj,null)){
      return  getComputedStyle(obj,null)[name];
    }
    else {
        return obj.currentstyle[name];
    }
}
标准css盒模型width就是内容的宽度,不包括padding,border和margin

在这里插入图片描述
在这里插入图片描述
元素的onmousemove属性检测鼠标移动
在这里插入图片描述
ie8以下是window.event,火狐是用event实参传递
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 var elementA = document.getElementById("list-a");
   elementA.onclick=function (event) {
         var event=event||window.event;
         if (event.target.className=="link"){      //获得点击的对象
             alert("ily");
         }
   }    contains不成功

elementA.addEventListener(“click”,function () {
alert(“二绑定”)
},null);
ie8和以下的不支持
elementA.attachEvent(“onclick”,function () {
alert(“mm”);
}) ;
其他浏览器不支持
在这里插入图片描述

function bind(obj,eventr,callback){
    if (obj.addEventListener){
        obj.addEventListener(eventr,callback,false);
    }
    else {
        obj.attachEvent("on"+eventr,function () {
            callback.call(obj);
        });
    }
}

this统一为obj
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按下的时候设置
在这里插入图片描述

不会捕捉到文字,他自己拦下所有时事件
在这里插入图片描述

松开鼠标设置这个,取消捕获
这两个方法只有ie认可,火狐等松开时加return false
在这里插入图片描述

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

var sub = document.getElementById("sub");
sub.onkeydown=function (event) {
    event=event||window.event;
   if (event.keyCode==13){
       alert("数据提交")
   }
}            //回车提交

在这里插入图片描述

var ua = navigator.userAgent;
alert(ua)
if ("ActiveXObject" in window){
    alert("ie11找到");
}else if (/firefox/i.test(ua)){
    alert("你是火狐")
}else if (/chrome/i.test(ua)){
    alert("你是谷歌")
}else if (/msie/i.test(ua)){
    alert("你是ie")
}

userAgent描述浏览器信息
history.back();history.forward();history.go(数字),相当于前两个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启定时器之前关闭,避免出现多个定时器在跑的情况
sub.className+= “?” // 注意空格,class之間

function hasClass(obj,classname){
    var exp = new RegExp("\b"+classname+"\b");
    return exp.test(obj.className);
}

判断对象是否包含className

Json

var stu={name:"wod",age:11};
var jsonstu = JSON.stringify(stu); //js对象转Json对象
alert(jsonstu);
var stu = JSON.parse(jsonstu);  //Json对象转js对象
alert(stu.age);

由于Ie7不兼容
在这里插入图片描述
执行字符串。不安全
如果需要兼容IE7和以下,可以引入外部js(网上查)
注:Json的属性需要双引号。{}外需要单引号

js高级

三个等号和typeof 能判断undefined
三个等号判断null
在这里插入图片描述
函数===“function” 返回true
我得到表达式是函数的话加括号就可以执行
console.log===“function” 是true
在这里插入图片描述
b1.b3()(),返回函数,再调用返回字符串
在这里插入图片描述
typeof null返回Object,但是null为基本类型
在这里插入图片描述
在这里插入图片描述
函数执行完成后局部变量自动释放,obj消失,对象成为垃圾对象,所以值还是前面的
可以说obj是a的拷贝

var a=1;
function ch(a) {
    a=a+1;
}
ch(a);
alert(a);

这里的a也是1,但是

var a=1;
function ch(a) {
   window.a=a+1;
}
ch(a);
alert(a);

全局遍历就是2了
对象:保存多个数据的容器
用它为了统一管理多个数据
属性含有特殊字符比如空格或——等或变量名为变量,只能用中括号,不能用点
在这里插入图片描述
在这里插入图片描述
匿名函数(IME)
在这里插入图片描述
函数.call(对象,“back”),表示将函数作为对象的函数,this则指的是obj
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
形参:变量 实参:变量的值
函数:多条语句的封装体
回调函数:手动定义,没有手动调用,在特定条件下执行的函数
this
在这this里插入图片描述
函数的prototype属性:
每个函数都有一个prototype属性,它默认指向一个Object空对象,即原型对象

alert(f.prototype.constructor===f)     //这样返回true

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Object的隐式原型对象为null
在这里插入图片描述
function f1() {
} 相当于 var f1=new Function();
所有函数的隐式原型都是Function的现式原型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变量提升和作用域
在这里插入图片描述
在这里插入图片描述
123321
在这里插入图片描述
变量提升然后函数提升 最终是“function”
在这里插入图片描述

function c(c) {
      alert(c);
}
c=1;
c(2);

报错

函数是Function的实例

作用域

沒有块作用域
作用域n+1,n指的函数个数
隔离变量:不同作用域下命题相同不会冲突
在这里插入图片描述
两个函数作用域,加一个全局作用域,结果是10
在这里插入图片描述

第一个输出函数,第二个报错
在这里插入图片描述
btns是个伪数组,他的length每次都要进行计算
在这里插入图片描述
i是全局变量,所以函数会在for循环结束后执行,它的值就变成3

闭包

两个函数嵌套,子函数引用外部函数的变量产生闭包
调用外部函数,子函数执行函数定义产生闭包(closure对象,里面有外部函数变量)
闭包产生次数和外部函数调用次数相等
作用在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
缺点 :函数执行后局部变量没及时释放,占用内存时间变长,造成内存泄漏
在这里插入图片描述
内存泄漏:
意外的全局变量,没有清理的计时器或回调函数,闭包
在这里插入图片描述
window的name
在这里插入图片描述
onb2的name

进程和线程

进程:程序的一次运行,占有独立的一片空间,能通过任务管理器查看
线程:进程内的一个独立单元。程序执行的一个完整流程,cpu最小的调度单元
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/fpxrng/article/details/109711271
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢