回归基础的东西,不能只是“感觉会了”

很多时候,觉得自己掌握的东西还是很少,做事情的效率还不是很高,希望自己能够成长起来,认认真真做事。

--------------------------------------------------------------------------------------------------------------------------------------------

Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。

var num = 1;

是在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。

而 num = 1;

事实上是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc。。。)中解析 num; 如果在任何当前作用域链中找到num,则会执行对num属性赋值; 如果没有找到num,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中创造num属性并赋值。

注意!它并不是声明了一个全局变量,而是创建了一个全局对象的属性。

即便如此,可能你还是很难明白“变量声明”跟“创建对象属性”在这里的区别。事实上,Javascript的变量声明、创建属性以及每个Javascript中的每个属性都有一定的标志说明它们的属性----如只读(ReadOnly)不可枚举(DontEnum)不可删除(DontDelete)等等。

由于变量声明自带不可删除属性,比较var num = 1 跟 num = 1,前者是变量声明,带不可删除属性,因此无法被删除;后者为全局变量的一个属性,因此可以从全局变量中删除。

具体见以下代码:

复制代码代码如下:

// num1为全局变量,num2为window的一个属性

var num1 = 1;

num2 = 2;

// delete num1;  无法删除

// delete num2;  删除

function model(){

var num1 = 1; // 本地变量

num2 = 2;     // window的属性

// 匿名函数

(function(){

var num = 1; // 本地变量

num1 = 2; // 继承作用域(闭包)

num3 = 3; // window的属性

}())

}

PS. 在ECMAScript5标准中,有一种“严格模式”(Strict Mode)。在严格模式中,为未声明的标识符赋值将会抛引用错误,因此可以防止意外的全局变量属性的创造。目前一些浏览器的新版本已经支持。

-----------------------------------------------------------------------------------------------------------------------------------------------

下面收集一些基础的知识,有时候基础的东西不能忘记,这些都是我们今天得以站立的根基和基石。

The HTML DOM Document Object

HTML DOM Nodes

In the HTML DOM (Document Object Model), everything is a node:

  • The document itself is a document node
  • All HTML elements are element nodes
  • All HTML attributes are attribute nodes
  • Text inside HTML elements are text nodes
  • Comments are comment nodes

The Document Object

When an HTML document is loaded into a web browser, it becomes a document object.

The document object is the root node of the HTML document and the "owner" of all other nodes:
(element nodes, text nodes, attribute nodes, and comment nodes).

The document object provides properties and methods to access all node objects, from within JavaScript.

Tip: The document is a part of the Window object and can be accessed as window.document.

Document Object Properties and Methods

The following properties and methods can be used on HTML documents:

Property / Method Description
document.activeElement Returns the currently focused element in the document
document.addEventListener() Attaches an event handler to the document
document.adoptNode() Adopts a node from another document
document.anchors Returns a collection of all <a> elements in the document that have a name attribute
document.applets Returns a collection of all <applet> elements in the document
document.baseURI Returns the absolute base URI of a document
document.body Sets or returns the document‘s body (the <body> element)
document.close() Closes the output stream previously opened with document.open()
document.cookie Returns all name/value pairs of cookies in the document
document.charset Deprecated. Use document.characterSet instead. Returns the character encoding for the document
document.characterSet Returns the character encoding for the document
document.createAttribute() Creates an attribute node
document.createComment() Creates a Comment node with the specified text
document.createDocumentFragment() Creates an empty DocumentFragment node
document.createElement() Creates an Element node
document.createTextNode() Creates a Text node
document.doctype Returns the Document Type Declaration associated with the document
document.documentElement Returns the Document Element of the document (the <html> element)
document.documentMode Returns the mode used by the browser to render the document
document.documentURI Sets or returns the location of the document
document.domain Returns the domain name of the server that loaded the document
document.domConfig Obsolete. Returns the DOM configuration of the document
document.embeds Returns a collection of all <embed> elements the document
document.forms Returns a collection of all <form> elements in the document
document.getElementById() Returns the element that has the ID attribute with the specified value
document.getElementsByClassName() Returns a NodeList containing all elements with the specified class name
document.getElementsByName() Returns a NodeList containing all elements with a specified name
document.getElementsByTagName() Returns a NodeList containing all elements with the specified tag name
document.hasFocus() Returns a Boolean value indicating whether the document has focus
document.head Returns the <head> element of the document
document.images Returns a collection of all <img> elements in the document
document.implementation Returns the DOMImplementation object that handles this document
document.importNode() Imports a node from another document
document.inputEncoding Returns the encoding, character set, used for the document
document.lastModified Returns the date and time the document was last modified
document.links Returns a collection of all <a> and <area> elements in the document that have a href attribute
document.normalize() Removes empty Text nodes, and joins adjacent nodes
document.normalizeDocument() Removes empty Text nodes, and joins adjacent nodes
document.open() Opens an HTML output stream to collect output from document.write()
document.querySelector() Returns the first element that matches a specified CSS selector(s) in the document
document.querySelectorAll() Returns a static NodeList containing all elements that matches a specified CSS selector(s) in the document
document.readyState Returns the (loading) status of the document
document.referrer Returns the URL of the document that loaded the current document
document.removeEventListener() Removes an event handler from the document (that has been attached with the addEventListener() method)
document.renameNode() Renames the specified node
document.scripts Returns a collection of <script> elements in the document
document.strictErrorChecking Sets or returns whether error-checking is enforced or not
document.title Sets or returns the title of the document
document.URL Returns the full URL of the HTML document
document.write() Writes HTML expressions or JavaScript code to a document
document.writeln() Same as write(), but adds a newline character after each statement
时间: 2024-10-09 07:23:39

回归基础的东西,不能只是“感觉会了”的相关文章

回归预测及R语言实现 Part1 回归基础综述

Part1 回归基础综述 回归方法有很多种,最常见的是线性回归(又有一元和多元之分).多项式回归.非线性回归.另外还将简单说明对预测结果的检验方法.   线性回归 一元线性回归,是最简单最常见的回归模型,类似初中数学中的一元一次方程,它的基本模型如下: 我们常见的一元线性回归方程一般没有最后一项,确切的说,我们在实际的应用中也忽略了最后一项.最后一项ui的现实意义是:它是指除自变量x以外所有对因变量y有影响的其他因素,应用回归预测时,我们假设ui是一个均值为零的随机变量,方差为常值,不同ui间相

回归基础: JavaScript 变量提升

from me: javascript的变量声明具有hoisting机制,它是JavaScript一个基础的知识点,也是一个比较容易犯错的点,平时在开发中,大大小小的项目都会遇到. 它是JavaScript引擎在执行的时候,把所有变量的声明都提升到当前作用域的最前面. 当然了,函数声明也是可以被提升的.然后,函数表达式却没有提升. 原文:Back to Basics: JavaScript Hoisting 译文:回归基础: JavaScript 变量提升 变量声明是所有的编程语言中最基础部分之

cocos2d(3.0)一些基础的东西

1.创建项目后环境配置: 附加文件夹:加入 $(EngineRoot) $(EngineRoot)cocos $(EngineRoot)cocos\editor-support $(EngineRoot)build\Debug.win32 ..\proj.win32 通用属性加入 (先从 cocos2d-x-3.0rc0 中 extensions   cocos\editor-support   cocos\ui 加入进去) libcocosstudio libExtensions libGUI

一些基础的东西总结一下

1.string类型转Date类型 SimpleFormatDate sdf = new SimpleFormatDate("yyyy-MM-dd"); Date date = sdf.parse(dateString); 2.disabled 和 readonly的区别 当表单提交的时候,使用了disabled的表单元素的值是不会被提交的,而readonly的则可以 3.处于$(function(){})里面的js函数外部js是调用不到的 4.ctrl + shift + P 快速定

JS的数据类型及转换(还是基础的东西)

朋友说我这是再自娱自乐,我只想说,你说的对????????!其实也不然,这算是我对自己的基础的一次彻底性的重新梳理以及闲的无聊,找点显得比较有意义的事情做罢了. 回归正题,在JS中,数据类型有哪些呢?看看下图 字符串.数字.布尔类型就不细说了,这些大家都懂,说一些大家关注度比较少的东西...... NULL和Undefined: NULL和Undefined一样都只有一个值,并且都是他们本身,但是有一点特别的有意思,那就是: 在W3C里事这样解释这两个东西的: 值 undefined 实际上是从

Redis一点基础的东西

目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结 1.基础底层数据结构 1.1.简单动态字符串SDS 定义: struct sdshdr{ int len; int free; char buf[]; } 优势: 为了重用部分C语言函数库功能,在buf里存储了空字符'\0',但是不同于C char[]的是: 取sds长度时,直接从len中获取,不是像C中遍历buf,直到遇到空字符结束. 在改变sds内容时,如果

回归基础从新认识——HTML+CSS

前言 这段时间工作没那么繁杂,索性就想说来套系统的学习,之前去面试的时候,有被问及些基础的知识,居然回答不上来,也不能说是回答不上吧,回答的不全面.前端群上问了那个机构比较好,选择了慕课网.看了一段时间还是觉得不错的. HTML 语义化标签 1. 更容易被搜索引擎收录. 2. 更容易让屏幕阅读器读出网页内容. 文章常用 <p>,添加段落 <hx>,h1.h2.h3.h4.h5.h6,添加标题 <strong>和<em>,但两者在强调的语气上有区别:<e

【机器学习基础】Logistic回归基础

soft binary classification Logistics回归模型要解决的是分类问题,在之前的二元分类问题中,我们将数据分成正例和负例,但是像PLA算法一样,用单位阶跃函数来处理的这种瞬间跳跃的过程有时很难处理.于是,我们希望能得到正例的概率值是多少. logistic regression的假设 我们在PLA和线性回归算法中都用数据的加权来计算一个分数s,在logistic回归中,我们用sigmoid函数来将这个分数s转化成0到1的概率值. 所以,用下面的h(x)来表示一个假设,

外卖O2O决战回归基础价值,得运营者得天下!

"并购"是O2O最为敏感的神经,任何一块小的石子投进湖面都会引发舆论波动.9月初,微博上关于百度糯米.百度外卖打包并购给美团的消息不胫而走.尽管消息已经被证伪耳,媒体人对外卖O2O的印象还停留在烧钱亏损阶段,很容易把此前的蛛丝马迹串成逻辑自洽的"事实":比如美团点评CEO王兴在亚布力论坛上扬言要在半年内结束外卖商战:再联想起李彦宏在百度世界大会上强调人工智能现在是百度战略核心的核心-- 如果此事成行意味着团购市场完成大统一,并将把矛头直指外卖市场所剩无几的对手--饿