关于JavaScript初学的一点主意的地方

本人原为Java工程师一枚,正如我的博客名,菜到不行,自己考虑了好久,发现自己还是对前端更感兴趣。正因为学过点Java,所以学起JavaScript来,感觉要比较简单,但是也没有别人说的那么简单,所以想试着写点博客,以后有不会的随时能够翻自己的博客,大神请绕行。我这篇文章是写的我记不太住的东西,我感觉简单的东西就一笔带过。这篇只是开头,还会有后续。欢迎大家找我讨论问题。QQ:1510898414

1、获取浏览器当前版本:window.navigator.userAgent

2、数据类型

1.原始类型NumberStringBooleanundefinednull

2.引用类型:值没有直接保存在变量本地的类型

变量中只保存指向实际数据所在位置的地址值

3、数据类型转换

toString():无法转换nullundefined

String(X);

X.toString(); ----à  String类型特有

底层实现原理function String(x){

if(x==undefined){

return “undefined”;

}else if(x==”null”){

return “null”;

}else{

return x.toString();

}

}

特殊:十进制转二进制:var i=500; console.log(i.toString(2));

所占空间:每个英文字母和数字占1个字节

  每个汉字占两个字节。

js在内存中都是用字符的Unicode码号储存字符的。

字符串是不能够被修改的

转义字符:

\n : 换行

\r : 回车(非换行,接收指令)

\t : 制表符

\' : '

\" : "

\\ : \

 

Number类型

Number(X);

几个特殊转换

Number(“”);--à0

Number(null);--à0

Number([]);--à0

Number(undefined);--àNaN

Number(true);--à1

Number(false);--à0

特殊n.toFixed();

按照指定小数位进行四舍五入

parseInt(str);

从头开始,跳过开头的空字符,碰到第一个非数字字符退出。

固定套路:去掉字符串中数字之后的单位

问题:不认识小数,去掉小数部分。

解决parseFloat(str);

只认识第一个小数点,能够转为整数则转为整数,无法转为整数就转为浮点数。

如若想要去除小数位,就用parseInt否则用parseFloat

Boolean(x);

只有0undefinednullNaN””,转为false

其余转为true。

NaN

isNaN(num);判断num是否为NaN返回truex不是数字,返回false则为数字

NaN不大于不小于不等于任

NaN!=X永远返回false

undefinednull比较

undefined:所有变量的初始

null:主动清空一个变量释放对象

区别typeOf(undefined)èundefined

  typeOf(null)èobject

typeOf(X)判断X的数据类型

4、运算符:+-*/%&按位|按位^按位异或

特殊+运算中碰上字符串就进行字符串拼接

  js除数可以为零,结果是Infinity

  Infinity可以参关系运算,

isFinite(num):专门判断一个数字是否在有效范围内,在的话返回true

5、关系运算:

返回值true/false

<>=<=>===!====!==

特殊:默认都转为数字类型大小null和引用类型对象,则不隐式转换,而是比较地址值

参与比较的两个值都是字符串转为数字类型,而是逐位比较每个字符的Unicode号

nullundefined在==比较会将undefined自动转换为null

6、逻辑运算

&&(且)||(或)!(非)

&&:左边的条件为false,则右边的不用判断输出结果为false

||:左边的条件为true,则右边的不用判断输出结果true。

!得到boolean类型结果进行一次反

特殊:条件&&一件事左边条件为true则执行右边的那件事,否则不执行

1||2:两个值任选其一先选值11被转为true(有效),就返回1否则返回值2

7、位移运算符:

左移m<<n:èm*Math.pow(2,n);

右移m>>n:èm/Math.pow(2,n);

取整m>>>0   m^0   m|0    parseInt(m)   Math.floor(x);

8、赋值运算:

=++--

n++与++n:n++是先进行其他操作++作为收尾

  ++n是先进行++,作为开头。

:表达式都是从左至右依次执行,提高优先级可用()

9、变量的声明:

注意声明提前在一个作用域所有声明都是作为这一作用域的最顶部,声明时默认给的值为undefined,所有的赋值操作留在原地

var声明的变量:都视为全局变量

变量声明:不能以数字开头,只能包含字母、数字和下划线

  不能用保留字  name  X

  中文也可以当做变量名,不推荐

决定变量的类型的主要在于等号右边的数据。

特殊

1. 只声明,但未赋值的变量,可任意使用。

2. 从未的变量,不能使用(或取值)!

此时若使用的话报错:ReferenceError  XXX is not defined

3.未声明的变量却可以赋值----其实和var不一样

尽量用var声明变量

特殊:常量的声明:const  常量名=值;

常量名:全部大写。

强行修改常量的值,不会报错,但也无法修改成功

10、函数

function声明的时候也会有声明提前

一段预定义,被反复执行的语句,本质上是功能完整的对象。

方法里面调用一声明的变量都要去方法外面去找,方法会调用它找到最近的那个同名变量

方法里面不用var声明的变量在外面也能调用,因为不用var相当于声明了一个全局变量。

在函数()不加形参,在方法里面调用外面的变量会对这个变量产生影响

函数相当于一个屋子,而形参就是门,没有形参那么函数里面的参数就会影响外面的同名参数。这个就叫实参泄露如果给函数一个形参。再在函数里面声明一个同名变,这个变量不会影响外面的同名变量值。在函数里面的同名变量如果不是用var声明的,这个变量也不是全局变量。

函数内部定义同名的变量,方法内部调用的是部的同名变量

函数的定义方法:1function XX(){ 代码块 }

方法方法定义的声明提前

2、var XXX=function(形参){代码}

方法名提前

注意1.如果一个表达式或函数有结果,就可以直接当一个值进行使用

2.如果传入参数个数不符,不会报错

a) 如果超了,多出的没用

b) 如果不够,未接到值参数变量会变成undefined

  11.全局函数

ES标准中规定的,浏览器厂商已经实现的,不需要任何对象即可直接调用的函数

JS中的JSFunctions函数

BOM中的都不是全局函数,alert不是全局函数不是ES标准。

12、死循环

while(){}          

for(;;){}

13、数组:引用类型的对象

垃圾回收:释放不再被任何变量引用的对象

垃圾回收器:在后台自动执行的,回收不再使用的对象的程序,对象每被一个变量引用,引用计数器都会+1,只要一个变量释放对对象的引用,counter就会-1

何时回收:一个对象,不再被任何变量引用,(counter为零)垃圾回收器就会自动释放对象的空间。

无法实施回收,建议:使用完较大的对象,主动释放

如何释放:变量名=null

数组[i]用法和普通的变量完全相同,特殊之处在于:如果i越界,js会自动在i位置创建一个新元素保存值

这种情况会造成下表不连续称为稀疏数组数组中的元素不限制存的数据类型。越界不会报错在取值的时候回返回undefined,赋值的时候会在指定位置添加新元素,并自动修改length属性。

14.素引数组和关联数组的区别:

索引数组:自动分配元素的下

关联数组:自定义下的关联数组

数组插入元素方式:arr.length=value;

arr[key]=value;

关联数组的key不能重复,所有数组如果访问不存在的下标位置不会报错,只会返回undefined

关联数组优点查找快

遍历方式:索引数组for(var i=0;i<arr.length;i++){}

  关联数组:for(var key in harr){}

15.拼接字符串var str=String(arr); 返回数组中元素的内容,用逗号分割,将数组转为字符串。

  除了nullundefined都有String(arr)返回数组中的元素的内容,用逗号分割

  var str=arr.join(“连接符”);

自定义连接符

1. 无缝连接数组的每个元素  var =arr.join(“”);

2. 将单词拼接成句子,var str=arr.join(“ ”);

3. 将数组添加为html元素

注意:字符串的拼接不如数的拼接效率因为字符串创建了就不能够更改。

如果有大量的拼接尽量用数组,调用join方法一次性拼接成结果字符

16.拼接数组:

关键字concat

用法var newArr=arr1.concat(value1,arr2,value2…);

强调concat不修改原数组,总返回一个新数组。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值