爱美容
当前位置: 首页 美容百科

javascript动态声明变量(javaScript变量和内置对象)

时间:2023-06-06 作者: 小编 阅读量: 2 栏目名: 美容百科

javascript动态声明变量?

javascript动态声明变量?1、变量a、变量提升javascript引擎的工作方式,先解析代码,获取所有被声明的变量,然后再一行一行的运行,造成的结果就是所有的变量的声明语句,都会被提升到代码的头部,(这种读取变量的机制就是变量提升)console.log(num)//undefinedvar num = 1上面的代码在Javascript就是下面这种代码机构var num;console.log(num)num = 1;注意:只对var 声明的有效b、变量作用域console.log(num)var num = 1//undefinedconsole.log(num)num = 1//errorvar声明的变量为局部变量局部变量仅在其所在的函数范围内生效,变量生效的范围被称为变量作用域而变量如果不适用var来声明,则表示变量在整个文件内生效,(全局变量)c、一等公民在其他语言中,函数都作为一个二等公民存在,只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传递给另一个函数,或是赋值给一个本地变量,又或是作为返回值,就需要指针、代理等特殊的方式周折一番但是 在javascript世界中函数却是一等公民,他不仅拥有一切传统函数的使用方式(声明和调用)、而且可以做到像简单值一样赋值,传参、返回,这样的函数也称之为第一级函数或者一等公民var a = function f() {console.log("wocao")}function f1(a) {a();}f1(a)d、函数名提升javascript引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部注意:只有function声明的函数会发生函数名提升,二如果通过赋值语句写的函数则不会e、**函数参数的默认值function func(num){ num = num || 1; num默认值为1 return num}func() //1这种写法会对函数参数num进行一次布尔运算,只有为true时,才会返回num避免了因为忘写参数而导致的函数调用失败问题**** 但是出了undefined以外、0、空字符、null等的布尔值也是false,2、内存a、值传递和地址传递原始数据类型(数值、字符串、布尔值)的内容传递方式是值传递传递是具体的数值而复合数据类型(数组、对象、其他函数)的内容传递是地址传递传递的是具体的内存地址注意:值传递不会对原内容产生改变,而地址传递能够改变原数据b、函数的同名参数如果函数有同名的参数,则取最后出现的那个参数值function f(num,num) {console.log(num)}f(1,2)//2如果函数没有提供第二个参数num的取值就变成了undefinedfunction f2(num,num) {console.log(num)}f2(1)//undefined注意:尽量不要写同名参数,而且定义函数的时候写了几个参数,在调用的时候尽量保证和定义时一致c、**arguments对象由于javascript允许函数有不定数目的参数,所以我们需要一种机制来在函数体内部读取所有参数arguments对象包含了函数,【运行时】的所有参数arguments[0]就是函数的第一个参数arguments[1]就是第二个,以此类推,(这个对象只有在【函数体内部】才可以使用)var func =function(one) {console.log(arguments[0])console.log(arguments[1])console.log(arguments[2])}func(1,2,3)尽管在函数被声明的时候并没有多个参数,但是在函数运行的时候有三个参数,因此arguments对象便能够获取到这三个参数arguments对象出了可以读取参数,还可以进行赋值arguments[2] = 2;arguments[3] =3;console.log(arguments[2]arguments[3])d、eval函数eval函数可计算某个字符串,并执行其中的javascript代码,(eval函数的作用是,将字符串当做语句执行)eval(string)该方法只接受【原始字符串】作为参数,如果string参数不是原始字符串那么该方法将不作任何改变的返回,因此请不要为eval函数传递string对象来作为参数eval('var num=100')console.log(num)注意:如果eval函数在使用的过程中发生了非法调用或者传入参数出错,则会抛出异常e、instanceof类型检测(数组是一种特殊的对象)用来检测是否对属于某个数据类型(仅对于复合数据类型)console.log(arr instanceof Object)3、Math对象属性Math对象是javascript的内置对象,提供一系列数学常数和数学方法,该对象不是构造函数,所以不能生成实例,所有的属性和方法都必须在Math对象本身调用a、Math对象的属性表示只读的数学常数Math.E常数eMath.LN22的自然对数Math.LN1010的自然对数Math.LOG2E以2为底的e的对数Math.LOG10E 以10为底的e的自然对数Math.PI常数piMath.SQRT1_2 0.5的平方根Math.SQRT22的平方根b、Math对象的方法Math.round():四舍五入当参数为正数时,正常的四舍五入标准,小于0.5取0,大于0.5取1当参数为负数时,向下取整标准,小于-0.5取-0,大于0.5取-1Math.round(0.1) //0Math.round(0.5) //1Math.round(-1.1) //-1Math.round(-1.6) //-2Math.floor()返回小于参数值的最大整数(向下取整)Math.floor(3.9) //3Math.floor(-3.2) //-4Math.ceil()返回大于参数值的最小整数(向上取整)Math.ceil(3.2) //4Math.ceil(-3.9) //-3Math.abs()返回参数的绝对值Math.abs(1) //1Math.abs(-1) //1Math.max()返回参数的最大值Math.max(1,5,11)Math.min()返回参数的最小值Math.min(1,5,11)Math.pow()返回第一个参数为底数,第二个参数为幂的指数值Math.pow(2,2)//4Math.pow(2,3)//8Math.sqrt()返回参数的值的平方根,如果是负值为NaNMath.sqrt(4) //2Math.sqrt(-4)//NaNMath.log()返回以e为底的自然对数值Math.log(Math.E) //1Math.log(10)Math.exp()返回常数e的参数次方Math.exp(1)Math.exp(3)6、Math随机生成Math.random()返回0-1之间的一个伪随机数,可能等于0但是一定小于1Math.random().toFixed(2)//保留小数点后两位//随机生成验证码function getRandomStr(length) {var characterDic = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789-_";var finalStr = "";for (var i =0;i<length;i){var index = (Math.random()*64).toFixed(0)var tempStr = characterDic[index]finalStr=tempStr}return finalStr;}var str = getRandomStr(4);console.log(str)7、Date对象是javascript提供的日期和时间的操作接口在javascript内部,所有日期和时间都存储为一个整数这个整数是当前时间距离1970年1月1日00:00:00的毫秒数,正负的范围为基准时间前后各一亿天a、Date()函数Date函数可以被Date对象直接调用,返回一个当前日期和时间的字符串Date();//Date(2021,1,1)无论有没有参数,直接调用Date总是返回当前时间b、Date(日期字符串|日期参数)构造函数Date对象是一个构造函数,对它使用new命令,会返回一个Date对象的实例【如果不加参数,生成的就是代表当前时间的对象】var today = new Date()【如果添加一个日期字符串作为参数,返回字符串所对应的时间】语法:var date2 = new Date("january 7,1996")【添加日期参数,返回字符串所对应的时间】语法:var date2 = new Date(year,month,day,hours,minutes,seconds,ms)使用日期参数时,年月日必须写,其他默认和可以省略,省略为0new Date(2013,2)new Date(2013,0,15)注意:月份是从零开始 0-11c、日期的运算javascript内部存储日期类型的时候等于距离1970年1月1日零点的毫秒数,而之前显示给用户的时候是转换为字符串显示的两个日期对象进行减法运算,返回的就是他们间隔的毫秒数两个日期对象进行加法运算,返回的就是连接后的两个字符串d、日期对象的get方法getTime()返回实例对象距离1970年1月1日00:00:00对应的毫秒数(valueOf()方法)getDate()返回实例对象对应每个月的几号(1开始)getDay()返回星期几,星期日为0星期一为1getYear()返回距离1900的年数getFullYear()返回四位数的月份getMonth()返回月份(0-11)getHours()返回小时(0-23)getMilliseconds()返回毫秒(0-999)getMinutes()返回分钟(0-59)getSeconds()返回秒(0-59),今天小编就来聊一聊关于javascript动态声明变量?接下来我们就一起去研究一下吧!

javascript动态声明变量

1、变量a、变量提升javascript引擎的工作方式,先解析代码,获取所有被声明的变量,然后再一行一行的运行,造成的结果就是所有的变量的声明语句,都会被提升到代码的头部,(这种读取变量的机制就是变量提升)console.log(num)//undefinedvar num = 1上面的代码在Javascript就是下面这种代码机构var num;console.log(num)num = 1;注意:只对var 声明的有效b、变量作用域console.log(num)var num = 1//undefinedconsole.log(num)num = 1//errorvar声明的变量为局部变量局部变量仅在其所在的函数范围内生效,变量生效的范围被称为变量作用域而变量如果不适用var来声明,则表示变量在整个文件内生效,(全局变量)c、一等公民在其他语言中,函数都作为一个二等公民存在,只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传递给另一个函数,或是赋值给一个本地变量,又或是作为返回值,就需要指针、代理等特殊的方式周折一番但是 在javascript世界中函数却是一等公民,他不仅拥有一切传统函数的使用方式(声明和调用)、而且可以做到像简单值一样赋值,传参、返回,这样的函数也称之为第一级函数或者一等公民var a = function f() {console.log("wocao")}function f1(a) {a();}f1(a)d、函数名提升javascript引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部注意:只有function声明的函数会发生函数名提升,二如果通过赋值语句写的函数则不会e、**函数参数的默认值function func(num){ num = num || 1; num默认值为1 return num}func() //1这种写法会对函数参数num进行一次布尔运算,只有为true时,才会返回num。避免了因为忘写参数而导致的函数调用失败问题**** 但是出了undefined以外、0、空字符、null等的布尔值也是false,2、内存a、值传递和地址传递原始数据类型(数值、字符串、布尔值)的内容传递方式是值传递传递是具体的数值而复合数据类型(数组、对象、其他函数)的内容传递是地址传递传递的是具体的内存地址注意:值传递不会对原内容产生改变,而地址传递能够改变原数据b、函数的同名参数如果函数有同名的参数,则取最后出现的那个参数值function f(num,num) {console.log(num)}f(1,2)//2如果函数没有提供第二个参数num的取值就变成了undefinedfunction f2(num,num) {console.log(num)}f2(1)//undefined注意:尽量不要写同名参数,而且定义函数的时候写了几个参数,在调用的时候尽量保证和定义时一致c、**arguments对象由于javascript允许函数有不定数目的参数,所以我们需要一种机制来在函数体内部读取所有参数arguments对象包含了函数,【运行时】的所有参数arguments[0]就是函数的第一个参数arguments[1]就是第二个,以此类推,(这个对象只有在【函数体内部】才可以使用)var func =function(one) {console.log(arguments[0])console.log(arguments[1])console.log(arguments[2])}func(1,2,3)尽管在函数被声明的时候并没有多个参数,但是在函数运行的时候有三个参数,因此arguments对象便能够获取到这三个参数arguments对象出了可以读取参数,还可以进行赋值arguments[2] = 2;arguments[3] =3;console.log(arguments[2]arguments[3])d、eval函数eval函数可计算某个字符串,并执行其中的javascript代码,(eval函数的作用是,将字符串当做语句执行)eval(string)该方法只接受【原始字符串】作为参数,如果string参数不是原始字符串那么该方法将不作任何改变的返回,因此请不要为eval函数传递string对象来作为参数eval('var num=100')console.log(num)注意:如果eval函数在使用的过程中发生了非法调用或者传入参数出错,则会抛出异常e、instanceof类型检测(数组是一种特殊的对象)用来检测是否对属于某个数据类型(仅对于复合数据类型)console.log(arr instanceof Object)3、Math对象属性Math对象是javascript的内置对象,提供一系列数学常数和数学方法,该对象不是构造函数,所以不能生成实例,所有的属性和方法都必须在Math对象本身调用a、Math对象的属性表示只读的数学常数Math.E常数eMath.LN22的自然对数Math.LN1010的自然对数Math.LOG2E以2为底的e的对数Math.LOG10E 以10为底的e的自然对数Math.PI常数piMath.SQRT1_2 0.5的平方根Math.SQRT22的平方根b、Math对象的方法Math.round():四舍五入当参数为正数时,正常的四舍五入标准,小于0.5取0,大于0.5取1当参数为负数时,向下取整标准,小于-0.5取-0,大于0.5取-1Math.round(0.1) //0Math.round(0.5) //1Math.round(-1.1) //-1Math.round(-1.6) //-2Math.floor()返回小于参数值的最大整数(向下取整)Math.floor(3.9) //3Math.floor(-3.2) //-4Math.ceil()返回大于参数值的最小整数(向上取整)Math.ceil(3.2) //4Math.ceil(-3.9) //-3Math.abs()返回参数的绝对值Math.abs(1) //1Math.abs(-1) //1Math.max()返回参数的最大值Math.max(1,5,11)Math.min()返回参数的最小值Math.min(1,5,11)Math.pow()返回第一个参数为底数,第二个参数为幂的指数值Math.pow(2,2)//4Math.pow(2,3)//8Math.sqrt()返回参数的值的平方根,如果是负值为NaNMath.sqrt(4) //2Math.sqrt(-4)//NaNMath.log()返回以e为底的自然对数值Math.log(Math.E) //1Math.log(10)Math.exp()返回常数e的参数次方Math.exp(1)Math.exp(3)6、Math随机生成Math.random()返回0-1之间的一个伪随机数,可能等于0但是一定小于1Math.random().toFixed(2)//保留小数点后两位//随机生成验证码function getRandomStr(length) {var characterDic = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789-_";var finalStr = "";for (var i =0;i<length;i){var index = (Math.random()*64).toFixed(0)var tempStr = characterDic[index]finalStr=tempStr}return finalStr;}var str = getRandomStr(4);console.log(str)7、Date对象是javascript提供的日期和时间的操作接口在javascript内部,所有日期和时间都存储为一个整数这个整数是当前时间距离1970年1月1日00:00:00的毫秒数,正负的范围为基准时间前后各一亿天a、Date()函数Date函数可以被Date对象直接调用,返回一个当前日期和时间的字符串Date();//Date(2021,1,1)无论有没有参数,直接调用Date总是返回当前时间b、Date(日期字符串|日期参数)构造函数Date对象是一个构造函数,对它使用new命令,会返回一个Date对象的实例【如果不加参数,生成的就是代表当前时间的对象】var today = new Date()【如果添加一个日期字符串作为参数,返回字符串所对应的时间】语法:var date2 = new Date("january 7,1996")【添加日期参数,返回字符串所对应的时间】语法:var date2 = new Date(year,month,day,hours,minutes,seconds,ms)使用日期参数时,年月日必须写,其他默认和可以省略,省略为0new Date(2013,2)new Date(2013,0,15)注意:月份是从零开始 0-11c、日期的运算javascript内部存储日期类型的时候等于距离1970年1月1日零点的毫秒数,而之前显示给用户的时候是转换为字符串显示的两个日期对象进行减法运算,返回的就是他们间隔的毫秒数两个日期对象进行加法运算,返回的就是连接后的两个字符串d、日期对象的get方法getTime()返回实例对象距离1970年1月1日00:00:00对应的毫秒数(valueOf()方法)getDate()返回实例对象对应每个月的几号(1开始)getDay()返回星期几,星期日为0星期一为1getYear()返回距离1900的年数getFullYear()返回四位数的月份getMonth()返回月份(0-11)getHours()返回小时(0-23)getMilliseconds()返回毫秒(0-999)getMinutes()返回分钟(0-59)getSeconds()返回秒(0-59)

    推荐阅读
  • 听觉的秘密(听觉世界里的潜规则)

    鸡尾酒会效应说起大脑的能力强,至今,大脑在处理声音方面的一个功能还在让所有科学家惊叹,这个功能的神奇机制至今也还是个谜。这种功能有个有趣的名字,叫做“鸡尾酒会效应”。动物也展现鸡尾酒会效应最近的研究发现,很多动物的听觉系统也具有这种鸡尾酒会效应的功能,例如鸟儿们经常群集一起,叽叽喳喳开大会,但它们往往只是回应自己伴侣的叫声,显然它们能够从嘈杂的叽喳声中分辨出伴侣的声音。

  • 淄博环保供热第一供热分公司供暖范围在哪?

    淄博环保供热第一供热分公司供暖范围在哪?供暖小常识之暖气不热的具体排气方法:每个暖气片上都有一个手动排气阀,用户可轻轻拧松手动排气阀,听到排气声立即停止扭动排气阀,若见有稳定水流流出可将排气阀轻轻拧紧。排过气后,若暖气片还是不热,应请专业人员查明原因,帮助解决问题,切不可盲目放水。

  • 窗帘是什么材质 高精密窗帘是什么材质

    透明类的丝质面料,手感柔软、纹路流畅,用做窗帘,既浪漫又高雅。丝质窗帘最大的特点也是最明显的缺点就是价格昂贵,难以清洗。古代太后或皇后临朝听政,殿上用竹帘遮隔,则称为垂帘听政。

  • 普惠性幼儿园能否增加收费项目(普惠性幼儿园覆盖率将超过80)

    普惠性幼儿园覆盖率将超过80日前,陕西省教育厅和陕西省发改委联合印发了《陕西省教育事业发展“十四五”规划》,其中明确提出要强化学前教育规划建设,将新增公办园300所,公办园占比和公办园在园幼儿占比保持50%以上,普惠性幼儿园覆盖。

  • 林清玄人生感言(承担是生命里最美的东西)

    更令人赞叹的是,那个煮面的老板还边与顾客聊着闲天。对于孩子突如其来的谈话,我感到莞尔,并且立即坦然承认,我一定输给卖面的人。他们不用言语,而以动作表达了对生命的承担。在古印度人传统的观念里,认为只要是两条河交会的地方一定是圣地,这是千年智慧累积所得到的结论。当然,在我们以神圣的心面对世界时,自己就有了承担,也就成为值得敬佩的人之一。事实上,所有的比较都是一种执著。

  • 白花蛇舌草的功效与作用(白花蛇舌草的功效与作用效)

    白花蛇舌草一年生小草本,生于潮湿的田边、沟边、路旁和草地。白花蛇舌草药材全体扭成团块,灰绿色至灰棕色。白花蛇舌草补充信息:炮制:取原药材除去杂质,抢水洗净,稍润,切段,干燥。白花蛇舌草适合人群:孕妇慎用白花蛇舌草的功效和作用白花蛇舌草味苦、微甘,性微寒;入肺、肝、胃经;具有清热利湿,解毒抗癌的功效;主治肺热喘咳,咽喉肿痛,湿热黄疸,热淋涩痛,水肿,痢疾肠炎,肠痈,痈肿疮疡,毒蛇咬伤,癌肿。

  • 苏州西站长途汽车站停运通知(苏州市区79班汽车客运班线停班)

    苏州汽车客运总站表示,将给因台风造成停班班次的旅客办理免费退票。昆山客运中心站正密切关注“利奇马”的走向及发展趋势,动态调整班次开行方案并及时通知广大旅客相关停班信息,确保旅客安全出行。有去机场、高铁站、火车站换乘的旅客请适当增加出行时间,以免受台风影响耽误行程。如因天气原因导致班次停运,乘车人可在当天携带本人身份证持车票到车站窗口办理全额退票。

  • 二氧化碳用途(二氧化碳的用途)

    二氧化碳是我们很熟悉的一种气体,大量的二氧化碳会导致温室效应的加剧。学过生物的同学都知道,植物的光合作用是需要二氧化碳作为原料的。在很多农场里面,也会放置产生二氧化碳的仪器,提高农作物的产量。二氧化碳灭火器可用于扑灭图书、重要仪器的失火,因为扑灭后没有任何的残留物质。其实这种效果都是由人为用干冰造成的。以及人工降雨也都会用到二氧化碳等,用途广泛。

  • 桂林社保卡要自己去银行办吗(桂林社保卡要自己去银行办吗现在)

    制卡人1寸白底免冠深色上衣证件纸质彩色照片1张。如委托代办,需提供受委托人的居民身份证原件。填写社会保障卡制卡申领表。社会保障卡启用1.办理条件本统筹区已领取社会保障卡,但未激活社保功能的参保人员。广西区内转入已经持有社会保障卡的参保人员。

  • tvb五花是谁(深扒TVB五朵金花)

    根据港媒报道,杨怡与胡定欣在剧组拍摄期间已经有了两女相争的苗头。根据当时报道,吴卓羲公开表示,自己与徐子珊仅拍摄了一天电视剧,便成为了男女朋友,使得二人被视为最佳荧幕情侣。在此期间,黄宗泽与五花们合作过多部作品,荧幕情侣也是组合了一对又一对。此外,同样家庭事业双丰收的还有勤恳劳模杨怡。然而,现实生活中,与杨怡定情的却是在剧中饰演马国明弟弟的罗仲谦。杨怡仍然认定罗仲谦,并于2016年10月于英国完婚。